def setup(self, timestamp_mock): self.timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") timestamp_mock.return_value = self.timestamp self.out = StringIO() self.msg = 'Hello' self.service = "api" self.namespace = 'tests' self.log = Logger(self.out, service=self.service)
class TestWrappObserver(object): @patch('wrapplog._timestamp') def setup(self, timestamp_mock): self.timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") timestamp_mock.return_value = self.timestamp self.out = StringIO() self.msg = 'Hello' self.service = "api" self.namespace = 'tests' self.log = Logger(self.out, service=self.service) def _generate_output(self, level): res = collections.OrderedDict() res['level'] = level res['msg'] = self.msg res['namespace'] = self.namespace res['service'] = self.service res['timestamp'] = self.timestamp return json.dumps(res) + '\n' def test_debug(self): self.log.debug(self.msg) self.assert_output(self._generate_output('debug')) def test_info(self): self.log.info(self.msg) self.assert_output(self._generate_output('info')) def test_warning(self): self.log.warning(self.msg) self.assert_output(self._generate_output('warning')) def test_error(self): self.log.error(self.msg) self.assert_output(self._generate_output('error')) def test_traceback(self): try: raise ValueError except ValueError: self.log.error_with_traceback(self.msg) actual = json.loads(self.get_output()) assert actual['level'] == 'error' assert actual['trace'] is not None def get_output(self): self.out.seek(0) return self.out.read() def assert_output(self, expected): actual = self.get_output() assert actual == expected, repr(actual)
class TestWrappObserver(object): def setup(self): self.out = StringIO() start_logging(self.out) self.log = Logger() def test_debug(self): self.log.debug('Hello!') self.assert_output('DEBUG {"level": "debug", "msg": "Hello!", "namespace": "tests"}\n') def test_info(self): self.log.info('Hello!') self.assert_output('INFO {"level": "info", "msg": "Hello!", "namespace": "tests"}\n') def test_warning(self): self.log.warning('Hello!') self.assert_output('WARNING {"level": "warning", "msg": "Hello!", "namespace": "tests"}\n') def test_error(self): self.log.error('Hello!') self.assert_output('ERROR {"level": "error", "msg": "Hello!", "namespace": "tests"}\n') def get_output(self): self.out.reset() return self.out.read() def assert_output(self, expected): actual = self.get_output() assert actual == expected, repr(actual)
def setup(self): self.out = StringIO() start_logging(self.out) self.log = Logger()