Home | History | Annotate | Download | only in dynamic_suite
      1 # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """Comparators for use in dynamic_suite module unit tests."""
      6 
      7 import mox
      8 
      9 class StatusContains(mox.Comparator):
     10     @staticmethod
     11     def CreateFromStrings(status=None, test_name=None, reason=None):
     12         status_comp = mox.StrContains(status) if status else mox.IgnoreArg()
     13         name_comp = mox.StrContains(test_name) if test_name else mox.IgnoreArg()
     14         reason_comp = mox.StrContains(reason) if reason else mox.IgnoreArg()
     15         return StatusContains(status_comp, name_comp, reason_comp)
     16 
     17 
     18     def __init__(self, status=mox.IgnoreArg(), test_name=mox.IgnoreArg(),
     19                  reason=mox.IgnoreArg()):
     20         """Initialize.
     21 
     22         Takes mox.Comparator objects to apply to job_status.Status
     23         member variables.
     24 
     25         @param status: status code, e.g. 'INFO', 'START', etc.
     26         @param test_name: expected test name.
     27         @param reason: expected reason
     28         """
     29         self._status = status
     30         self._test_name = test_name
     31         self._reason = reason
     32 
     33 
     34     def equals(self, rhs):
     35         """Check to see if fields match base_job.status_log_entry obj in rhs.
     36 
     37         @param rhs: base_job.status_log_entry object to match.
     38         @return boolean
     39         """
     40         return (self._status.equals(rhs.status_code) and
     41                 self._test_name.equals(rhs.operation) and
     42                 self._reason.equals(rhs.message))
     43 
     44 
     45     def __repr__(self):
     46         return '<Status containing \'%s\t%s\t%s\'>' % (self._status,
     47                                                        self._test_name,
     48                                                        self._reason)
     49