Exemple #1
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)
Exemple #2
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)
Exemple #3
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)
Exemple #4
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)
Exemple #5
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)
Exemple #6
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')
Exemple #7
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)))
Exemple #8
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)
Exemple #9
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])
Exemple #10
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])
Exemple #11
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)
Exemple #12
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)