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, }, )
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], )
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, }, )
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)