Example #1
0
    def testStoringAndReadingEntries(self):
        jour = journaler.Journaler()
        writer = journaler.SqliteWriter(self, encoding='zip')

        yield writer.initiate()
        yield jour.configure_with(writer)
        yield jour.insert_entry(**self._generate_entry())
        histories = yield writer.get_histories()
        self.assertIsInstance(histories, list)
        self.assertIsInstance(histories[0], journaler.History)

        entries = yield writer.get_entries(histories[0])
        self.assertIsInstance(entries, list)
        self.assertEqual(1, len(entries))
        unpacked = entries[0]
        self.assertEqual('some id', unpacked['agent_id'])
        self.assertEqual('some.canonical.name', unpacked['function_id'])
        self.assertEqual(('some_id', 1, 0, ),
                         banana.unserialize(unpacked['journal_id']))
        self.assertEqual(None,
                         banana.unserialize(unpacked['result']))
        self.assertEqual(list(),
                         banana.unserialize(unpacked['side_effects']))

        yield jour.insert_entry(**self._generate_entry(function_id='other'))
        entries = yield writer.get_entries(histories[0])
        self.assertEqual(2, len(entries))
        first = entries[0]
        second = entries[1]
        self.assertEqual('some.canonical.name', first['function_id'])
        self.assertEqual('other', second['function_id'])
    def testGettingJournalerEntries(self):
        yield self._populate_data()

        # test getting histories
        histories = yield self.reader.get_histories()
        self.assertEqual(3, len(histories))
        self.assertEqual('other_agent', histories[0].agent_id)
        self.assertEqual('some id', histories[1].agent_id)
        self.assertEqual(1, histories[0].instance_id)
        self.assertEqual(1, histories[1].instance_id)
        self.assertEqual(self.hostname, histories[0].hostname)
        self.assertEqual(self.hostname, histories[1].hostname)
        self.assertEqual('cool_agent', histories[2].agent_id)
        self.assertEqual(1, histories[2].instance_id)
        self.assertEqual(self.hostname2, histories[2].hostname)

        # get entris for history
        entries = yield self.reader.get_entries(histories[0])
        self.assertEqual(2, len(entries))
        self.assertEqual('some args', entries[0]['args'])

        # same with start_date
        entries = yield self.reader.get_entries(histories[0],
                                                start_date=self.now-10)
        self.assertEqual(1, len(entries))
        self.assertEqual(tuple(), banana.unserialize(entries[0]['args']))

        # same with limit on number
        entries = yield self.reader.get_entries(histories[0], limit=1)
        self.assertEqual(1, len(entries))
        self.assertEqual('some args', entries[0]['args'])

        # getting bare entries
        entries = yield self.reader.get_bare_journal_entries()
        self.assertEqual(6, len(entries))
        self.assertEqual('other_agent', entries[0]['agent_id'])
        self.assertEqual('other_agent', entries[1]['agent_id'])

        # deleting entries
        yield self.reader.delete_top_journal_entries(2)
        entries = yield self.reader.get_bare_journal_entries()
        self.assertEqual(4, len(entries))
        self.assertEqual('some id', entries[0]['agent_id'])
        self.assertEqual('some id', entries[1]['agent_id'])