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)
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')
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')
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)
def test_Table_adding_foreing_constaints(self): with Table('s') as s: s.t = Integer() t = Table('t') t.text = Text() t.text.references = 's (t)' t.save() db.create('t', text='ay') self.assertTrue(db.table_exists('t'))
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')
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)
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')
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')
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)