Esempio n. 1
0
    def test_find_equals_equality_to_null_finds_nulls(self):
        db.create_table('t', default_cols(a='integer', b='text'))
        db.create('t', b='t1')

        field_with_null_val = list(qb.table('t').where('a', '=', None))
        self.assertEqual(field_with_null_val[0]['a'], None)
        self.assertEqual(field_with_null_val[0]['b'], 't1')
Esempio n. 2
0
    def test_table_querying_all(self):
        db.create_table('t', default_cols(name='text', number='integer'))
        db.create('t', name='t1', number=1)

        created = next(qb.table('t').all())
        self.assertEqual(created['name'], 't1')
        self.assertEqual(created['number'], 1)
Esempio n. 3
0
    def test_update_all(self):
        db.create_table('t', default_cols(id='integer'))
        db.create_many('t', ('id', ), ((1, ) for _ in range(10)))

        qb.table('t').update({'id': 0})
        for row in db.all('t'):
            self.assertEqual(row['id'], 0)
Esempio n. 4
0
    def test_db_update_equal_works(self):
        db.create_table('t', default_cols(id='integer'))
        db.create('t', id=1)

        qb.table('t').where('id', '=', 1).update({'id': 2})

        self.assertEqual(next(db.all('t'))['id'], 2)
Esempio n. 5
0
    def test_Table_droping(self):
        db.create_table('t', default_cols(a='text'))
        table = Table('t')

        table.drop()

        self.assertFalse(db.table_exists('t'))
Esempio n. 6
0
    def test_Table_drop_if_exist_drops_correctly(self):
        db.create_table('t', default_cols(a='text'))
        table = Table('t')

        table.drop_if_exists()

        self.assertFalse(db.table_exists('t'))
Esempio n. 7
0
    def test_where_not_null_finding_not_null_values(self):
        db.create_table('t', default_cols(a='integer', b='text'))
        db.create('t', b='t1')
        db.create('t', a='t2')

        field_with_null_val = list(qb.table('t').where_not_null('a'))
        self.assertEqual(field_with_null_val[0]['a'], 't2')
Esempio n. 8
0
    def test_table_first(self):
        db.create_table('t', default_cols(a='text', b='integer'))
        db.create_many('t', ('a', 'b'), (('t1', 1), ('t2', 2)))

        first = qb.table('t').first()

        self.assertEqual(first['a'], 't1')
        self.assertEqual(first['b'], 1)
Esempio n. 9
0
    def test_where_like_works(self):
        db.create_table('t', default_cols(a='integer', b='text'))
        db.create_many('t', ('a', 'b'), [(1, 'ttest1'), (2, 'test2'), (3, 't'),
                                         (None, 't3'), (5, 't4')])

        fields_like_test = list(qb.table('t').where('b', 'LIKE', '%test%'))

        self.assertEqual(len(fields_like_test), 2)
Esempio n. 10
0
    def test_where_not_in(self):
        db.create_table('t', default_cols(a='integer', b='text'))
        db.create_many('t', ('a', 'b'), [(1, '1'), (2, '2'), (3, '3'),
                                         (4, '4')])

        odd_fields = tuple(qb.table('t').where_not_in('a', (2, 3)))

        self.assertEqual(len(odd_fields), 2)
        self.assertEqual(odd_fields[0]['b'], '1')
Esempio n. 11
0
    def test_where_equality_to_non_null_value_doesnt_count_nulls(self):
        """ Watch out for a bug where Field = Value counted null values too.
        """
        db.create_table('t', default_cols(a='integer', b='integer'))
        db.create_many('t', ('a', 'b'), ((None, 1), (2, 2)))

        field_with_id_2 = list(qb.table('t').where('a', '=', 2))
        self.assertEqual(len(field_with_id_2), 1)
        self.assertEqual(field_with_id_2[0]['b'], 2)
Esempio n. 12
0
    def test_Table_renaming(self):
        db.create_table('t', default_cols(a='text'))

        table = Table('t')
        table.rename('s')
        table.save()

        self.assertFalse(db.table_exists('t'))
        self.assertTrue(db.table_exists('s'))
Esempio n. 13
0
    def test_db_update_a_lot_of_cols(self):
        db.create_table('t', default_cols(id='integer', number='integer'))
        db.create_many('t', ('id', 'number'), ((1, i) for i in range(10)))
        for row in db.all('t'):
            self.assertNotEqual(row['number'], -1)

        qb.table('t').where('id', '=', 1).update({'number': -1})
        for row in db.all('t'):
            self.assertEqual(row['number'], -1)
Esempio n. 14
0
    def test_table_max_min_sum(self):
        db.create_table('t', default_cols(a='integer'))
        db.create_many('t', ('a', ), [(i, ) for i in range(10)])

        count = qb.table('t').count()
        self.assertEqual(count, 10)

        self.assertEqual(qb.table('t').max('a'), 9)
        self.assertEqual(qb.table('t').min('a'), 0)
        self.assertEqual(qb.table('t').sum('a'), sum(range(10)))
Esempio n. 15
0
    def test_where_inequality_works_even_with_null_records(self):
        db.create_table('t', default_cols(a='integer', b='text'))
        db.create_many('t', ('a', 'b'),
                       ((1, 't1'), (2, 't2'), (3, None), (None, 't4')))

        fields_with_a_not_3 = list(qb.table('t').where('a', '!=', 3))

        self.assertEqual(len(fields_with_a_not_3), 3)

        for field in fields_with_a_not_3:
            self.assertFalse(field['a'] == 3)
Esempio n. 16
0
    def test_where_gt_works(self):
        db.create_table('t', default_cols(a='integer', b='text'))
        db.create_many('t', ('a', 'b'), [(1, 't1'), (2, 't2'), (3, None),
                                         (None, 't3'), (5, 't4')])

        field_with_a_gt_2 = list(qb.table('t').where('a', '>', 2))

        self.assertEqual(len(field_with_a_gt_2), 2)

        for row in field_with_a_gt_2:
            self.assertTrue(row['a'] > 2)
            self.assertIn(row['b'], ['t4', None])
Esempio n. 17
0
    def test_where_many_with_two_conditions(self):
        db.create_table('t', default_cols(a='integer', b='text', c='real'))

        db.create('t', a=1, b='t1', c=3.4)
        db.create('t', a=2, b='t2', c=.3)
        db.create('t', a=3)
        db.create('t', b='t4')

        field_with_two_cond = list(
            qb.table('t').where_many([('a', '!=', 3), ('c', '>=', 1)]))
        self.assertEqual(len(field_with_two_cond), 1)
        self.assertEqual(field_with_two_cond[0]['b'], 't1')
Esempio n. 18
0
    def test_db_deletion_equality(self):
        db.create_table('t', default_cols(id='integer', name='text'))

        db.create('t', id=1, name='t1')
        db.create('t', name='t2')

        self.assertEqual(len(list(qb.table('t'))), 2)

        qb.table('t').where('name', '=', 't1').delete()
        rows = list(qb.table('t'))
        self.assertEqual(len(rows), 1)
        self.assertEqual(rows[0]['name'], 't2')
Esempio n. 19
0
    def test_where_equals_works(self):
        db.create_table('t', default_cols(id='integer', name='text'))

        db.create('t', id=1, name='t1')
        db.create('t', id=2, name='t2')
        db.create('t', id=3)

        query = qb.table('t').where('id', '=', 1)
        field_with_id_1 = list(qb.table('t').where('id', '=', 1))

        self.assertEqual(len(field_with_id_1), 1)
        self.assertEqual(field_with_id_1[0]['name'], 't1')
Esempio n. 20
0
    def test_db_deletion_null(self):
        db.create_table('t', default_cols(id='integer', name='text'))
        db.create('t', name='t1')
        db.create('t', id=4, name='t5')
        db.create('t', id=2, name='t2')
        db.create('t', id=3)
        db.create('t', name='t4')

        qb.table('t').where('id', '=', None).delete()

        rows = list(qb.table('t'))
        self.assertEqual(len(rows), 3)
        for row in rows:
            self.assertNotEqual(row['id'], None)
Esempio n. 21
0
    def test_find_where_lesser_than_or_equal_works(self):
        """ Watch out for a bug that made columns with 'None' lesser or equal to
            the value given, returning rows that made no sense.
        """
        db.create_table('t', default_cols(a='integer', name='text'))
        db.create_many('t', ('a', 'name'), [(1, 't1'), (2, 't2'), (3, None),
                                            (None, 't3'), (5, 't4')])

        field_with_a_le_than_3 = list(
            qb.table('t').where_many([('a', '<=', 3)]))

        self.assertEqual(len(field_with_a_le_than_3), 3)

        for row in field_with_a_le_than_3:
            self.assertTrue(row['a'] <= 3)
            self.assertIn(row['name'], ['t1', 't2', None])
Esempio n. 22
0
    def setUpClass(cls):
        db.create_table('e', default_cols(a='integer', b='text'))

        cls.created_table = Table('c')
        cls.edited_table = Table('e')
Esempio n. 23
0
 def setUp(self):
     db.create_table('tests', default_cols(a='text'))
     db.create_many('tests', ('a', ), ('a', 'b', 'c'))
     self.mc = ModelContainer(db.all('tests'), Test)
Esempio n. 24
0
    def test_db_update_doesnt_update_not_found_columns(self):
        db.create_table('t', default_cols(id='integer'))
        db.create('t', id=0)
        qb.table('t').where('id', '=', '1').update({'id': 2})

        self.assertEqual(next(db.all('t'))['id'], 0)
Esempio n. 25
0
    def test_table_count(self):
        db.create_table('t', default_cols(a='integer'))
        db.create_many('t', ('a', ), [(i, ) for i in range(10)])

        count = qb.table('t').count()
        self.assertEqual(count, 10)