class GenericRelatedFieldTest(APITransactionTestCase):
    def setUp(self):
        from nodeconductor.structure.tests.factories import UserFactory

        self.user = UserFactory(is_staff=True)
        self.request = APIRequestFactory().get('/')
        self.request.user = self.user

        self.field = GenericRelatedField(related_models=get_loggable_models())
        self.field.root._context = {'request': self.request}

    def test_if_related_object_exists_it_is_deserialized(self):
        from nodeconductor.structure.tests.factories import CustomerFactory
        customer = CustomerFactory()
        valid_url = CustomerFactory.get_url(customer)
        self.assertEqual(self.field.to_internal_value(valid_url), customer)

    def test_if_related_object_does_not_exist_validation_error_is_raised(self):
        from nodeconductor.structure.tests.factories import CustomerFactory
        customer = CustomerFactory()
        valid_url = CustomerFactory.get_url(customer)
        customer.delete()
        self.assertRaises(serializers.ValidationError, self.field.to_internal_value, valid_url)

    def test_if_user_does_not_have_permissions_for_related_object_validation_error_is_raised(self):
        from nodeconductor.structure.tests.factories import CustomerFactory
        customer = CustomerFactory()
        valid_url = CustomerFactory.get_url(customer)
        self.user.is_staff = False
        self.user.save()
        self.assertRaises(serializers.ValidationError, self.field.to_internal_value, valid_url)

    def test_if_uuid_is_invalid_validation_error_is_raised(self):
        invalid_url = 'https://example.com/api/customers/invalid/'
        self.assertRaises(serializers.ValidationError, self.field.to_internal_value, invalid_url)
Example #2
0
 def setUp(self):
     self.staff = UserFactory(is_staff=True)
     self.owner = UserFactory()
     self.user = UserFactory()
     self.customer = CustomerFactory()
     self.customer.add_user(self.owner, CustomerRole.OWNER)
     self.url = reverse('customer_image', kwargs={'uuid': self.customer.uuid.hex})
    def setUp(self):
        from nodeconductor.structure.tests.factories import UserFactory

        self.user = UserFactory(is_staff=True)
        self.request = APIRequestFactory().get('/')
        self.request.user = self.user

        self.field = GenericRelatedField(related_models=get_loggable_models())
        self.field.root._context = {'request': self.request}
Example #4
0
    def change_user(self, **kwargs):
        user = UserFactory()
        form_for_data = UserChangeForm(instance=user)

        post_data = form_for_data.initial
        post_data.update(kwargs)

        form = UserChangeForm(instance=user, data=post_data)
        form.save()

        user.refresh_from_db()
        return user
    def make_request(self, fields):
        from nodeconductor.structure.tests.factories import UserFactory

        request = APIRequestFactory().get('/', {'field': fields})
        force_authenticate(request, UserFactory())
        response = RestrictedSerializerView.as_view()(request)
        return response
Example #6
0
    def test_user_can_update_threshold(self):
        self.client.force_authenticate(UserFactory(is_staff=True))

        response = self.client.put(QuotaFactory.get_url(self.quota), {
            'threshold': 1000,
        })
        self.assertEqual(status.HTTP_200_OK, response.status_code,
                         response.data)
        self.assertEqual(1000, response.data['threshold'], response.data)
Example #7
0
 def setUp(self):
     self.link = TestServiceProjectLinkFactory()
     self.vm1 = TestNewInstanceFactory(service_project_link=self.link)
     self.vm2 = TestNewInstanceFactory(service_project_link=self.link)
     self.vm3 = TestNewInstanceFactory(service_project_link=self.link)
     self.client.force_authenticate(UserFactory(is_staff=True))
Example #8
0
 def setUp(self):
     self.user = UserFactory()
     self.other = UserFactory()
     self.customer = CustomerFactory()
     self.customer.add_user(self.user, CustomerRole.OWNER)
Example #9
0
    def test_authenticated_user_can_access_version(self):
        user = UserFactory()
        self.client.force_authenticate(user=user)

        response = self.client.get(self.version_url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)