def setUp(self): self.admin = AdminFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + self.admin.auth_token.key) self.asset_class = AssetClassFactory(name="Asset Class") self.data = { "name": "Asset Class Name", "alt_name": "Asset Class Alt Name", "is_active": True, }
def test_asset_class_has_attributes_attr(): from .factories import AssetClassFactory a = AssetClassFactory(name="automobile") assert a.attributes.all().count() == 0 assert a.attributes.first() is None
def test_asset_partial_update_asset_class(self): """Assets can asset class updated by admins.""" new_asset_class = AssetClassFactory() data = {"asset_class": new_asset_class.name} response = self.client.patch( reverse("v1:assets-detail", args=[self.asset.pk]), data) self.asset.refresh_from_db() self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(self.asset.asset_class.name, data["asset_class"])
def build_automotive_domain(): from assets.tests.factories import ( DomainFactory, AssetClassFactory, AttributeFactory, ) domain = DomainFactory(name="automotive") car_class = AssetClassFactory(name="car") domain.asset_classes.add(car_class) vin_attribute = AttributeFactory(name="vin") car_class.attributes.add(vin_attribute) return domain
def setUp(self): self.admin = AdminFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + self.admin.auth_token.key) self.exchange = ExchangeFactory() self.asset_class = AssetClassFactory() self.asset = AssetFactory(name="Asset", exchange=self.exchange, asset_class=self.asset_class) self.data = { "id": str(uuid.uuid4()), "name": "Asset Name", "asset_class": self.asset_class.name, "easy_to_borrow": True, "exchange": self.exchange.name, "marginable": True, "shortable": True, "status": Asset.ACTIVE, "symbol": "SYMBOL", "tradable": True, }
def test_check_asset_class_factory_exists(): from .factories import AssetClassFactory a = AssetClassFactory() assert a.name
class AssetClassViewTests(APITestCase): def setUp(self): self.admin = AdminFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + self.admin.auth_token.key) self.asset_class = AssetClassFactory(name="Asset Class") self.data = { "name": "Asset Class Name", "alt_name": "Asset Class Alt Name", "is_active": True, } def test_admin_list_asset_class(self): """Asset class are listed for admins.""" response = self.client.get(reverse("v1:asset-classes-list")) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) def test_user_list_asset_class(self): """Asset class are listed for users.""" user = UserFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + user.auth_token.key) response = self.client.get(reverse("v1:asset-classes-list")) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) def test_create_asset_class(self): """Asset class can be created by admins.""" response = self.client.post(reverse("v1:asset-classes-list"), self.data) asset_class = AssetClass.objects.filter(name=self.data["name"]) self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertTrue(asset_class.exists()) asset_class = asset_class.first() self.assertEqual(asset_class.name, self.data["name"]) self.assertEqual(asset_class.alt_name, self.data["alt_name"]) self.assertEqual(asset_class.is_active, self.data["is_active"]) def test_create_asset_class_invalid(self): """Asset class can not be created by users.""" user = UserFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + user.auth_token.key) response = self.client.post(reverse("v1:asset-classes-list"), self.data) asset_class = AssetClass.objects.filter(name=self.data["name"]) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertFalse(asset_class.exists()) def test_partial_update_asset_class(self): """Asset class can be partially updated by admins.""" data = {"name": "New Asset Class Name"} response = self.client.patch( reverse("v1:asset-classes-detail", args=[self.asset_class.pk]), data) self.asset_class.refresh_from_db() self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(self.asset_class.name, data["name"]) def test_partial_update_asset_class_invalid(self): """Asset class can not be partially updated by users.""" user = UserFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + user.auth_token.key) data = {"name": "New Asset Class Name"} response = self.client.patch( reverse("v1:asset-classes-detail", args=[self.asset_class.pk]), data) self.asset_class.refresh_from_db() self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(self.asset_class.name, "Asset Class") def test_delete_asset_class(self): """Asset class can be deleted by admins.""" response = self.client.delete( reverse("v1:asset-classes-detail", args=[self.asset_class.pk])) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertFalse( AssetClass.objects.filter(pk=self.asset_class.pk).exists()) def test_delete_asset_class_invalid(self): """Asset class can not be deleted by users.""" user = UserFactory() self.client.credentials(HTTP_AUTHORIZATION="Token " + user.auth_token.key) response = self.client.delete( reverse("v1:asset-classes-detail", args=[self.asset_class.pk])) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertTrue( AssetClass.objects.filter(pk=self.asset_class.pk).exists())