Пример #1
0
    def test_get_queries(self):
        db = DatabaseWithMockedRow(mocked_row=['foo'])

        # query method is not memoized, so let's count all queries (even the same ones)
        for _ in range(5):
            self.assertEqual(db.query_row('SELECT FOO'), ['foo'])

        self.assertEqual(len(db.get_queries()), 5)
        self.assertEqual(db.get_queries()[0], 'SELECT FOO')
Пример #2
0
    def test_cached_get_tables(self):
        tables_list = ['foo']
        db = DatabaseWithMockedRow(mocked_row=tables_list)

        # this would made five queries to database if not memoization in get_tables
        for _ in range(5):
            self.assertEqual(db.get_tables(), tables_list)

        # however, only one is made :)
        self.assertEqual(len(db.get_queries()), 1)
Пример #3
0
    def test_cached_get_table_schema(self):
        db = DatabaseWithMockedRow(mocked_row=[None, 'CREATE TABLE foo;'])

        # this would made ten queries to database if not memoization in get_table_schema
        # also test that @memoize decorator correctly handles different arguments
        for _ in range(5):
            schema = db.get_table_schema('0000_the_table')
            self.assertEqual(schema, 'CREATE TABLE foo;')

            schema = db.get_table_schema('0002_not_used_indices')
            self.assertEqual(schema, 'CREATE TABLE foo;')

        queries = db.get_queries()
        print(queries)

        # however, only two are made :)
        self.assertEqual(len(queries), 2)

        self.assertEqual('SHOW CREATE TABLE `0000_the_table`', str(queries[0]))
        self.assertEqual('SHOW CREATE TABLE `0002_not_used_indices`',
                         str(queries[1]))
Пример #4
0
 def test_database_version(self):
     db = DatabaseWithMockedRow(mocked_row=['5.5.58-0+deb8u1'])
     self.assertEquals(db.get_server_version(), '5.5.58-0+deb8u1')
Пример #5
0
 def test_database_hostname(self):
     db = DatabaseWithMockedRow(mocked_row=['hostname', 'kopytko.foo.net'])
     self.assertEquals(db.get_server_hostname(), 'kopytko.foo.net')