Beispiel #1
0
    def setUp(self):
        self.user = get_user_model().objects.create(username='******',
                                                    is_superuser=True)
        self.sample = Sample.objects.create(contributor=self.user,
                                            name="Test sample")

        sample_viewset = SampleViewSet()
        self.sample_queryset = sample_viewset.get_queryset()
        presample_viewset = PresampleViewSet()
        self.presample_queryset = presample_viewset.get_queryset()

        detail_url_mapping = {
            'get': 'retrieve',
            'put': 'update',
            'patch': 'partial_update',
            'delete': 'destroy',
        }

        list_url_mapping = {
            'get': 'list',
            'post': 'create',
        }

        self.detail_sample_view = SampleViewSet.as_view(detail_url_mapping)
        self.detail_presample_view = PresampleViewSet.as_view(
            detail_url_mapping)
        self.list_sample_view = SampleViewSet.as_view(list_url_mapping)
        self.list_presample_view = PresampleViewSet.as_view(list_url_mapping)

        self.factory = APIRequestFactory()
Beispiel #2
0
    def setUp(self):
        self.user = get_user_model().objects.create(username='******', is_superuser=True)
        self.sample = Sample.objects.create(contributor=self.user, name="Test sample")

        sample_viewset = SampleViewSet()
        self.sample_queryset = sample_viewset.get_queryset()
        presample_viewset = PresampleViewSet()
        self.presample_queryset = presample_viewset.get_queryset()

        detail_url_mapping = {
            'get': 'retrieve',
            'put': 'update',
            'patch': 'partial_update',
            'delete': 'destroy',
        }

        list_url_mapping = {
            'get': 'list',
            'post': 'create',
        }

        self.detail_sample_view = SampleViewSet.as_view(detail_url_mapping)
        self.detail_presample_view = PresampleViewSet.as_view(detail_url_mapping)
        self.list_sample_view = SampleViewSet.as_view(list_url_mapping)
        self.list_presample_view = PresampleViewSet.as_view(list_url_mapping)

        self.factory = APIRequestFactory()
Beispiel #3
0
    def setUp(self):
        user_model = get_user_model()

        self.user = user_model.objects.create_user('test_user')
        self.collection = Collection.objects.create(name="Test Collection", contributor=self.user)
        self.sample = Sample.objects.create(name="Test sample", contributor=self.user)
        process = Process.objects.create(name="Test process", contributor=self.user)
        self.data = Data.objects.create(name="Test data", contributor=self.user, process=process)
        self.data_2 = Data.objects.create(name="Test data 2", contributor=self.user, process=process)

        # another Data object to make sure that other objects are not processed
        Data.objects.create(name="Dummy data", contributor=self.user, process=process)

        self.sample.data.add(self.data)

        assign_perm('add_collection', self.user, self.collection)
        assign_perm('add_sample', self.user, self.sample)

        self.sampleviewset = SampleViewSet()
Beispiel #4
0
class SampleViewSetTest(TestCase):
    def setUp(self):
        User = get_user_model()

        self.user = User.objects.create_user('test_user')
        self.collection = Collection.objects.create(name="Test Collection", contributor=self.user)
        self.sample = Sample.objects.create(name="Test sample", contributor=self.user)
        process = Process.objects.create(name="Test process", contributor=self.user)
        self.data = Data.objects.create(name="Test data", contributor=self.user, process=process)

        # another Data object to make sure that other objects are not processed
        Data.objects.create(name="Dummy data", contributor=self.user, process=process)

        self.sample.data.add(self.data)

        shortcuts.assign_perm('add_collection', self.user, self.collection)

        self.sampleviewset = SampleViewSet()

    def test_add_to_collection(self):
        request_mock = MagicMock(data={'ids': [self.collection.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        self.sampleviewset.add_to_collection(request_mock)

        self.assertEqual(self.collection.data.count(), 1)
        self.assertEqual(self.sample.collections.count(), 1)

    def test_remove_from_collection(self):
        # Manually add Sample and it's Data objects to the Collection
        self.sample.collections.add(self.collection.pk)
        self.collection.data.add(self.data)

        request_mock = MagicMock(data={'ids': [self.collection.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        self.sampleviewset.remove_from_collection(request_mock)

        self.assertEqual(self.collection.data.count(), 0)
        self.assertEqual(self.sample.collections.count(), 0)

    def test_add_remove_permissions(self):
        request_mock = MagicMock(data={'ids': [self.collection.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        shortcuts.remove_perm('add_collection', self.user, self.collection)

        with self.assertRaises(exceptions.PermissionDenied):
            self.sampleviewset.remove_from_collection(request_mock)

        with self.assertRaises(exceptions.PermissionDenied):
            self.sampleviewset.add_to_collection(request_mock)
Beispiel #5
0
    def setUp(self):
        User = get_user_model()

        self.user = User.objects.create_user('test_user')
        self.collection = Collection.objects.create(name="Test Collection", contributor=self.user)
        self.sample = Sample.objects.create(name="Test sample", contributor=self.user)
        process = Process.objects.create(name="Test process", contributor=self.user)
        self.data = Data.objects.create(name="Test data", contributor=self.user, process=process)

        # another Data object to make sure that other objects are not processed
        Data.objects.create(name="Dummy data", contributor=self.user, process=process)

        self.sample.data.add(self.data)

        shortcuts.assign_perm('add_collection', self.user, self.collection)

        self.sampleviewset = SampleViewSet()
Beispiel #6
0
class SampleViewSetTest(TestCase):
    def setUp(self):
        user_model = get_user_model()

        self.user = user_model.objects.create_user('test_user')
        self.collection = Collection.objects.create(name="Test Collection", contributor=self.user)
        self.sample = Sample.objects.create(name="Test sample", contributor=self.user)
        process = Process.objects.create(name="Test process", contributor=self.user)
        self.data = Data.objects.create(name="Test data", contributor=self.user, process=process)
        self.data_2 = Data.objects.create(name="Test data 2", contributor=self.user, process=process)

        # another Data object to make sure that other objects are not processed
        Data.objects.create(name="Dummy data", contributor=self.user, process=process)

        self.sample.data.add(self.data)

        assign_perm('add_collection', self.user, self.collection)
        assign_perm('add_sample', self.user, self.sample)

        self.sampleviewset = SampleViewSet()

    def test_add_to_collection(self):
        request_mock = MagicMock(data={'ids': [self.collection.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        self.sampleviewset.add_to_collection(request_mock)

        self.assertEqual(self.collection.data.count(), 1)
        self.assertEqual(self.sample.collections.count(), 1)

    def test_remove_from_collection(self):
        # Manually add Sample and it's Data objects to the Collection
        self.sample.collections.add(self.collection.pk)
        self.collection.data.add(self.data)

        request_mock = MagicMock(data={'ids': [self.collection.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        self.sampleviewset.remove_from_collection(request_mock)

        self.assertEqual(self.collection.data.count(), 0)
        self.assertEqual(self.sample.collections.count(), 0)

    def test_add_remove_permissions(self):
        request_mock = MagicMock(data={'ids': [self.collection.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        remove_perm('add_collection', self.user, self.collection)

        with self.assertRaises(exceptions.PermissionDenied):
            self.sampleviewset.remove_from_collection(request_mock)

        with self.assertRaises(exceptions.PermissionDenied):
            self.sampleviewset.add_to_collection(request_mock)

    def test_add_data(self):
        self.sample.collections.add(self.collection)

        request_mock = MagicMock(data={'ids': [self.data.pk]}, user=self.user)
        self.sampleviewset.get_object = lambda: self.sample

        self.sampleviewset.add_data(request_mock)

        self.assertEqual(self.sample.data.count(), 1)
        self.assertEqual(self.collection.data.count(), 1)

    def test_remove_data(self):
        self.sample.data.add(self.data_2)
        self.sampleviewset.get_object = lambda: self.sample

        # sample is removed only when last data object is removed
        request_mock = MagicMock(data={'ids': [self.data.pk]}, user=self.user)
        self.sampleviewset.remove_data(request_mock)
        self.assertEqual(Sample.objects.count(), 1)
        request_mock = MagicMock(data={'ids': [self.data_2.pk]}, user=self.user)
        self.sampleviewset.remove_data(request_mock)
        self.assertEqual(Sample.objects.count(), 0)