def test_create_new(self): """ Make sure that creating a new instance works. """ Manager.objects().create(name="Maz").run_sync() names = [i["name"] for i in Manager.select(Manager.name).run_sync()] self.assertTrue("Maz" in names)
def test_model_builder_with_valid_column_string(self): manager = ModelBuilder.build_sync(Manager, defaults={"name": "Guido"}) queried_manager = (Manager.objects().where( Manager.id == manager.id).first().run_sync()) self.assertEqual(queried_manager.name, "Guido")
def test_where_equals(self): self.insert_row() manager = Manager.objects().first().run_sync() # This is the recommended way of running these types of queries: response = (Band.select(Band.name).where(Band.manager.id == getattr( manager, Band._meta.primary_key._meta.name)).run_sync()) self.assertEqual(response, [{"name": "Pythonistas"}]) # Other cases which should work: response = (Band.select(Band.name).where(Band.manager == getattr( manager, Manager._meta.primary_key._meta.name)).run_sync()) self.assertEqual(response, [{"name": "Pythonistas"}]) response = (Band.select(Band.name).where(Band.manager.id == getattr( manager, Manager._meta.primary_key._meta.name)).run_sync()) self.assertEqual(response, [{"name": "Pythonistas"}]) # check multiple arguments inside WHERE clause response = (Band.select(Band.name).where( Band.manager.id == 1, Band.popularity == 500).run_sync()) self.assertEqual(response, []) # check empty WHERE clause response = Band.select(Band.name).where().run_sync() self.assertEqual(response, [{"name": "Pythonistas"}])
def setUp(self): create_tables(*TABLES) manager_1 = Manager.objects().create(name="Guido").run_sync() manager_2 = Manager.objects().create(name="Graydon").run_sync() band_1 = (Band.objects().create(name="Pythonistas", manager=manager_1).run_sync()) band_2 = (Band.objects().create(name="Rustaceans", manager=manager_2).run_sync()) venue = (Venue.objects().create(name="Royal Albert Hall", capacity=5900).run_sync()) concert = (Concert.objects().create(venue=venue, band_1=band_1, band_2=band_2).run_sync()) Ticket.objects().create(price=decimal.Decimal(50.0), concert=concert).run_sync()
def test_to_dict(self): """ Make sure that `to_dict` works correctly. """ self.insert_row() instance = Manager.objects().first().run_sync() dictionary = instance.to_dict() self.assertDictEqual(dictionary, {"id": 1, "name": "Guido"})
def test_filter_rows(self): """ Make sure that `to_dict` works correctly with a subset of columns. """ self.insert_row() instance = Manager.objects().first().run_sync() dictionary = instance.to_dict(Manager.name) self.assertDictEqual(dictionary, {"name": "Guido"})
def test_set_default(self): Manager.alter().set_default(Manager.name, "Pending").run_sync() # Bypassing the ORM to make sure the database default is present. Band.raw("INSERT INTO manager (id, name) VALUES (DEFAULT, DEFAULT);" ).run_sync() manager = Manager.objects().first().run_sync() self.assertEqual(manager.name, "Pending")
async def run_queries(): return await asyncio.gather( Manager.select(), Manager.insert(Manager(name="Golangs")), Manager.delete().where(Manager.name != "Golangs"), Manager.objects(), Manager.count(), Manager.raw("SELECT * FROM manager"), )
def test_repr_postgres(self): self.assertEqual( Manager().__repr__(), "<Manager: None>", ) self.insert_row() manager = Manager.objects().first().run_sync() self.assertEqual(manager.__repr__(), "<Manager: 1>")
def test_aliases(self): """ Make sure that `to_dict` works correctly with aliases. """ self.insert_row() instance = Manager.objects().first().run_sync() dictionary = instance.to_dict( Manager.id, Manager.name.as_alias("title") ) self.assertDictEqual(dictionary, {"id": 1, "title": "Guido"})