Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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")
Ejemplo n.º 3
0
    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"}])
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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"})
Ejemplo n.º 6
0
    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"})
Ejemplo n.º 7
0
    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")
Ejemplo n.º 8
0
 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"),
     )
Ejemplo n.º 9
0
    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>")
Ejemplo n.º 10
0
    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"})