Esempio n. 1
0
    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)
Esempio n. 2
0
    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',))
Esempio n. 3
0
    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)
Esempio n. 4
0
    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,))
Esempio n. 5
0
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')