コード例 #1
0
 def test_move(self):
     l = LogCapture(names="drivar.DrivarNoop",
                    install=False,
                    level=logging.DEBUG)
     drivar = DrivarNoop()
     drivar.initialize()
     adapter = PahoMqttAdapter(drivar)
     # Test that messages get interpreted correctly
     adapter.start()
     l.install()
     params = {'speed': Drivar.SPEED_FAST}
     self.client.publish("scene/robot/drivar/command/motor/move",
                         json.dumps(params), 0, True)
     time.sleep(1)
     l.check(
         ('drivar.DrivarNoop', 'INFO',
          'Drivar : Moving all wheels with power ' +
          str(DrivarNoop._getMotorPowerLevel(params['speed'])) + '.'),
         ('drivar.DrivarNoop', 'INFO', 'Drivar : Stopping the vehicle.'))
     l.clear()
     self.client.publish("scene/robot/drivar/command/motor/turn", "", 0,
                         True)
     time.sleep(1)
     l.check(('drivar.DrivarNoop', 'INFO',
              'Drivar : Turning the vehicle left by 90 degrees.'))
     l.uninstall()
コード例 #2
0
 def test_simple_manual_install(self):
     l = LogCapture(install=False)
     root.info('before')
     l.install()
     root.info('during')
     l.uninstall()
     root.info('after')
     assert str(l) == "root INFO\n  during"
コード例 #3
0
 def test_simple_manual_install(self):
     l = LogCapture(install=False)
     root.info('before')
     l.install()
     root.info('during')
     l.uninstall()
     root.info('after')
     assert str(l) == "root INFO\n  during"
コード例 #4
0
ファイル: util.py プロジェクト: ruffnote/timecard-gae
class TestCase(unittest.TestCase):
  __metaclass__ = abc.ABCMeta
  root_path = os.path.dirname(os.path.dirname(__file__))
  environ = dict()
  domain = None
  use_cookie = False

  def setUp(self):
    # webtest
    if self.use_cookie:
      cookiejar = cookielib.CookieJar()
    else:
      cookiejar = None
    self.app = TestApp(utils.app, domain=self.domain, cookiejar=cookiejar)
    # os.environ
    self.origin_environ = dict()
    if "HTTP_HOST" not in self.environ.viewkeys():
      self.environ["HTTP_HOST"] = "localhost"
    for key, value in self.environ.viewitems():
      self.origin_environ[key], os.environ[key] = os.environ.get(key), value
    # testbed
    self.testbed = testbed.Testbed()
    self.testbed.activate()
    self.testbed.init_datastore_v3_stub(consistency_policy=datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=0))
    self.testbed.init_blobstore_stub()
    self.testbed.init_files_stub()
    self.testbed.init_memcache_stub()
    self.testbed.init_taskqueue_stub(root_path=self.root_path)
    # logging
    self.log = LogCapture(level=logging.WARNING)
    self.log.install()

  def tearDown(self):
    try:
      # logging
      for record in self.log.records:
        pathname = get_tail(record.pathname).group("tail")
        log = (record.levelname, pathname.replace(os.path.abspath(os.curdir), "").lstrip("/"), record.funcName, record.getMessage())
        if getattr(self, "expected_logs", None):
          if log in self.expected_logs:
            continue
          matched = None
          for expected_log in self.expected_logs:
            if "..." in expected_log[3]:
              if log[:2] == expected_log[:2]:
                if doctest._ellipsis_match(expected_log[3], log[3]):
                  matched = True
                  continue
          if matched:
            continue
        print(record.levelname, pathname, record.lineno, record.funcName, record.getMessage())
        assert not log
    finally:
      self.log.clear()
      self.log.uninstall()
      # testbed
      self.testbed.deactivate()
      # os.environ
      for key, value in self.origin_environ.iteritems():
        if value is not None:
          os.environ[key] = value

  def execute_tasks(self, queue_name):
    taskqueue_stub = apiproxy_stub_map.apiproxy.GetStub("taskqueue")
    tasks = taskqueue_stub.GetTasks(queue_name)
    for task in tasks:
      deferred.run(base64.b64decode(task["body"]))
      taskqueue_stub.DeleteTask(queue_name, task["name"])
コード例 #5
0
ファイル: util.py プロジェクト: pandeiro245/timecard-gae
class TestCase(unittest.TestCase):
    __metaclass__ = abc.ABCMeta
    root_path = os.path.dirname(os.path.dirname(__file__))
    environ = dict()
    domain = None
    use_cookie = False

    def setUp(self):
        # webtest
        if self.use_cookie:
            cookiejar = cookielib.CookieJar()
        else:
            cookiejar = None
        self.app = TestApp(utils.app, domain=self.domain, cookiejar=cookiejar)
        # os.environ
        self.origin_environ = dict()
        if "HTTP_HOST" not in self.environ.viewkeys():
            self.environ["HTTP_HOST"] = "localhost"
        for key, value in self.environ.viewitems():
            self.origin_environ[key], os.environ[key] = os.environ.get(
                key), value
        # testbed
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub(
            consistency_policy=datastore_stub_util.
            PseudoRandomHRConsistencyPolicy(probability=0))
        self.testbed.init_blobstore_stub()
        self.testbed.init_files_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub(root_path=self.root_path)
        # logging
        self.log = LogCapture(level=logging.WARNING)
        self.log.install()

    def tearDown(self):
        try:
            # logging
            for record in self.log.records:
                pathname = get_tail(record.pathname).group("tail")
                log = (record.levelname,
                       pathname.replace(os.path.abspath(os.curdir),
                                        "").lstrip("/"), record.funcName,
                       record.getMessage())
                if getattr(self, "expected_logs", None):
                    if log in self.expected_logs:
                        continue
                    matched = None
                    for expected_log in self.expected_logs:
                        if "..." in expected_log[3]:
                            if log[:2] == expected_log[:2]:
                                if doctest._ellipsis_match(
                                        expected_log[3], log[3]):
                                    matched = True
                                    continue
                    if matched:
                        continue
                print(record.levelname, pathname, record.lineno,
                      record.funcName, record.getMessage())
                assert not log
        finally:
            self.log.clear()
            self.log.uninstall()
            # testbed
            self.testbed.deactivate()
            # os.environ
            for key, value in self.origin_environ.iteritems():
                if value is not None:
                    os.environ[key] = value

    def execute_tasks(self, queue_name):
        taskqueue_stub = apiproxy_stub_map.apiproxy.GetStub("taskqueue")
        tasks = taskqueue_stub.GetTasks(queue_name)
        for task in tasks:
            deferred.run(base64.b64decode(task["body"]))
            taskqueue_stub.DeleteTask(queue_name, task["name"])
コード例 #6
0
ファイル: test_util.py プロジェクト: MiCHiLU/gae-tap
class TestCase(unittest.TestCase):
  __metaclass__ = abc.ABCMeta
  root_path = os.path.dirname(os.path.dirname(__file__))
  environ = dict()
  domain = None
  use_cookie = False
  application = tap.app
  is_endpoints = False

  def __init__(self, *argv, **kwargv):
    super(TestCase, self).__init__(*argv, **kwargv)

    if isinstance(self.application, endpoints.api_config._ApiDecorator):
      api_names = list()
      for api_class in self.application.get_api_classes():
        for name, _method in api_class.all_remote_methods().items():
          api_names.append(name)
      self.api_names = tuple(api_names)
      self.application = endpoints.api_server([self.application], restricted=False)
      self.is_endpoints = True
    else:
      self.api_names = tuple()

  def setUp(self):
    # webtest
    if self.use_cookie:
      cookiejar = cookielib.CookieJar()
    else:
      cookiejar = None
    self.app = TestApp(self.application, domain=self.domain, cookiejar=cookiejar)
    # os.environ
    self.origin_environ = dict()
    if "HTTP_HOST" not in self.environ.viewkeys():
      self.environ["HTTP_HOST"] = "localhost"
    for key, value in self.environ.viewitems():
      self.origin_environ[key], os.environ[key] = os.environ.get(key), value
    # testbed
    self.testbed = testbed.Testbed()
    self.testbed.activate()
    self.testbed.init_datastore_v3_stub(
      consistency_policy=datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=0),
      root_path=self.root_path,
    )
    self.testbed.init_blobstore_stub()
    self.testbed.init_files_stub()
    self.testbed.init_memcache_stub()
    self.testbed.init_taskqueue_stub(root_path=self.root_path)
    self.testbed.init_urlfetch_stub()
    self.testbed.init_user_stub()
    # logging
    self.log = LogCapture(level=logging.WARNING)
    self.log.install()

  def tearDown(self):
    restore()
    try:
      # logging
      for record in self.log.records:
        if self.is_endpoints and len(record.args) >= 3:
          exception = record.args[2]
          if isinstance(exception, endpoints.ServiceException):
            try:
              str(exception)
            except TypeError:
              record.args[2].args = [str(arg) for arg in exception.args]
            except UnicodeEncodeError:
              record.args[2].args = [unicode(arg) for arg in exception.args]
        pathname = get_tail(record.pathname).group("tail")
        curdir_abspath = os.path.abspath(os.curdir)
        if is_mac:
          if curdir_abspath.startswith(mac_volumes_prefix):
            curdir_abspath = curdir_abspath[mac_volumes_prefix_length:]
          if pathname.startswith(mac_volumes_prefix):
            pathname = pathname[mac_volumes_prefix_length:]
        else:
          curdir_abspath = curdir_abspath.lstrip('/')
          pathname = pathname.lstrip('/')
        log = (record.levelname, pathname.replace(curdir_abspath, "").lstrip("/"), record.funcName, record.getMessage())
        if getattr(self, "expected_logs", None):
          if log in self.expected_logs:
            continue
          matched = None
          for expected_log in self.expected_logs:
            if "..." in expected_log[3]:
              if log[:2] == expected_log[:2]:
                if doctest._ellipsis_match(expected_log[3], log[3]):
                  matched = True
                  continue
          if matched:
            continue
        elif self.is_endpoints:
          expected_log = (
            'WARNING',
            'google/appengine/ext/ndb/tasklets.py',
            '_help_tasklet_along',
            '... generator ...(....py:...) raised ...Exception(...)')
          if log[:2] == expected_log[:2]:
            if doctest._ellipsis_match(expected_log[3], log[3]):
              matched = True
              continue
        print(record.levelname, pathname, record.lineno, record.funcName, record.getMessage())
        assert not log
    finally:
      self.log.clear()
      self.log.uninstall()
      # testbed
      self.testbed.deactivate()
      # os.environ
      for key, value in self.origin_environ.iteritems():
        if value is not None:
          os.environ[key] = value

  def execute_tasks(self, queue_name):
    taskqueue_stub = apiproxy_stub_map.apiproxy.GetStub("taskqueue")
    tasks = taskqueue_stub.GetTasks(queue_name)
    for task in tasks:
      deferred.run(base64.b64decode(task["body"]))
      taskqueue_stub.DeleteTask(queue_name, task["name"])

  def endpoints_uri(self, endpoint):
    api_class_name, api_method_name = endpoint.split(".", 1)
    real_api_method_name = "_{0}_{1}".format(api_class_name, api_method_name)
    assert real_api_method_name in self.api_names
    return "/_ah/spi/{0}.{1}".format(api_class_name, real_api_method_name)

  def endpoints_via_oauth(self, email=None, _auth_domain=None,
               _user_id=None, federated_identity=None, federated_provider=None,
               _strict_mode=False):
    if email is not None:
      if _auth_domain is None:
        _auth_domain = email.split("@", 1)[1]
      if _user_id is None:
        _user_id = str(tap.base_decoder(sorted(set(email)))(email))
    user = users.User(email, _auth_domain,
               _user_id, federated_identity, federated_provider,
               _strict_mode)
    mock("endpoints.get_current_user", returns=user, tracker=None)