示例#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]))