예제 #1
0
    def test_select_all_columns_exclude(self):
        """
        Make sure we can get all columns, except the ones we specify.
        """
        result = (
            Band.select(
                Band.all_columns(exclude=[Band.id]),
                Band.manager.all_columns(exclude=[Band.manager.id]),
            )
            .output(nested=True)
            .first()
            .run_sync()
        )

        result_str_args = (
            Band.select(
                Band.all_columns(exclude=["id"]),
                Band.manager.all_columns(exclude=["id"]),
            )
            .output(nested=True)
            .first()
            .run_sync()
        )

        for data in (result, result_str_args):
            self.assertDictEqual(
                data,
                {
                    "name": "Pythonistas",
                    "manager": {"name": "Guido"},
                    "popularity": 1000,
                },
            )
예제 #2
0
    def test_all_columns_excluding(self):
        self.assertEqual(
            Band.all_columns(exclude=[Band.id]),
            [Band.name, Band.manager, Band.popularity],
        )

        self.assertEqual(
            Band.all_columns(exclude=["id"]),
            [Band.name, Band.manager, Band.popularity],
        )
예제 #3
0
    def test_select_all_columns_root_nested(self):
        """
        Make sure that using ``all_columns`` at the root doesn't interfere
        with using it for referenced tables.
        """
        result = (
            Band.select(Band.all_columns(), Band.manager.all_columns())
            .output(nested=True)
            .first()
            .run_sync()
        )

        self.assertDictEqual(
            result,
            {
                "id": 1,
                "name": "Pythonistas",
                "manager": {"id": 1, "name": "Guido"},
                "popularity": 1000,
            },
        )
예제 #4
0
 def test_all_columns(self):
     self.assertEqual(
         Band.all_columns(),
         [Band.id, Band.name, Band.manager, Band.popularity],
     )
     self.assertEqual(Band.all_columns(), Band._meta.columns)