def test_double_close(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar', prefix_ts=True) obj = {'fields': {'meta': "metlog::file::close"}} # This should fail self.client.deliver(obj) assert_raises(IOError, self.client.deliver, obj)
def test_file_write(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar') ctx = patch.object(self.client, 'output_file') with ctx: obj = {'fields': {'bar': "This is a magic number: 42"}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) eq_(mock.method_calls[0][1], ('This is a magic number: 42',))
def test_prefix_timestamps(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar', prefix_ts=True) ctx = patch.object(self.client, 'output_file') with ctx: obj = {'timestamp': 'faketimestamp', 'fields': {'bar': "This is a magic number: 42"}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) expected = ('faketimestamp This is a magic number: 42',) eq_(mock.method_calls[0][1], expected)
def test_json_output(self): self.client = FileOutput(self.temp_filename, output_fmt='json') ctx = patch.object(self.client, 'output_file') with ctx: obj = {'fields': {'bar': {'bad': "This is a magic number: 42"}}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) expected = json.dumps(obj) eq_(mock.method_calls[0][1], (expected,))
class TestFile(object): def setup(self): fout = tempfile.NamedTemporaryFile(mode='ab', delete=True) self.temp_filename = fout.name fout.close() def test_file_write(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar') ctx = patch.object(self.client, 'output_file') with ctx: obj = {'fields': {'bar': "This is a magic number: 42"}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) eq_(mock.method_calls[0][1], ('This is a magic number: 42',)) def test_keyed_json_write(self): self.client = FileOutput(self.temp_filename, output_fmt='json', keypath='fields/bar') ctx = patch.object(self.client, 'output_file') with ctx: obj = {'fields': {'bar': {'bad': "This is a magic number: 42"}}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) eq_(mock.method_calls[0][1], ('{"bad": "This is a magic number: 42"}',)) def test_json_output(self): self.client = FileOutput(self.temp_filename, output_fmt='json') ctx = patch.object(self.client, 'output_file') with ctx: obj = {'fields': {'bar': {'bad': "This is a magic number: 42"}}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) expected = json.dumps(obj) eq_(mock.method_calls[0][1], (expected,)) def test_prefix_timestamps(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar', prefix_ts=True) ctx = patch.object(self.client, 'output_file') with ctx: obj = {'timestamp': 'faketimestamp', 'fields': {'bar': "This is a magic number: 42"}} self.client.deliver(obj) mock = self.client.output_file eq_(len(mock.method_calls), 1) expected = ('faketimestamp This is a magic number: 42',) eq_(mock.method_calls[0][1], expected) def test_double_open(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar', prefix_ts=True) obj = {'fields': {'meta': "metlog::file::open"}} # This should fail assert_raises(IOError, self.client.deliver, obj) def test_double_close(self): self.client = FileOutput(self.temp_filename, output_fmt='text', keypath='fields/bar', prefix_ts=True) obj = {'fields': {'meta': "metlog::file::close"}} # This should fail self.client.deliver(obj) assert_raises(IOError, self.client.deliver, obj) @raises(InvalidFileFormat) def test_invalid_format(self): FileOutput(self.temp_filename, output_fmt='bad_fmt', keypath='fields/bar')