Пример #1
0
 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,
     }
Пример #2
0
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
Пример #3
0
    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"])
Пример #4
0
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
Пример #5
0
 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,
     }
Пример #6
0
def test_check_asset_class_factory_exists():
    from .factories import AssetClassFactory

    a = AssetClassFactory()
    assert a.name
Пример #7
0
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())