Пример #1
0
    def test_delete_anonymize_datasets(self):

        user = LocalcosmosUser.objects.create_user(self.test_username,
                                                   self.test_email,
                                                   self.test_password)

        test_data = {
            'dataset': {
                'reported_values': {
                    'client_id': 'test_client',
                    'client_platform': 'browser',
                },
                'observation_form': {
                    'taxonomic_reference': 'test_taxonomic_reference',
                    'geographic_reference': 'test_geographic_reference',
                    'temporal_reference': 'test_temporal_reference',
                }
            }
        }

        dataset = Dataset(
            data=test_data,
            app_uuid=uuid.uuid4(),
            user=user,
            client_id='test_client',
            created_at=timezone.now(),
        )

        dataset.save()

        user.delete()

        dataset = Dataset.objects.get(pk=dataset.pk)
        self.assertEqual(dataset.user, None)
    def test_user(self):

        user = self.create_user()

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=TEST_DATASET_DATA_WITH_ALL_REFERENCE_FIELDS,
            created_at=timezone.now(),
            user=user,
        )

        dataset.save()

        image = SimpleUploadedFile(name='test_image.jpg',
                                   content=open(TEST_IMAGE_PATH, 'rb').read(),
                                   content_type='image/jpeg')

        dataset_image = DatasetImages(
            dataset=dataset,
            field_uuid=uuid.uuid4(),
            image=image,
        )

        dataset_image.save()

        self.assertEqual(dataset_image.user, user)
    def test_use_existing_client_id(self):

        # emulate django_road and assign a user during the first dataset save(),
        # but the dataset contains an unknown client_id AND the platform is the browser

        user = self.create_user()

        existing_client_id = 'existing_client_id'

        client_link = UserClients(
            user=user,
            client_id=existing_client_id,
            platform='browser',
        )

        client_link.save()

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=TEST_DATASET_DATA_WITH_ALL_REFERENCE_FIELDS,
            created_at=timezone.now(),
            user=user,
        )

        dataset.save()

        dataset = Dataset.objects.get(pk=dataset.pk)

        self.assertEqual(dataset.client_id, existing_client_id)
        self.assertEqual(
            dataset.data['dataset']['reported_values']['client_id'],
            existing_client_id)
Пример #4
0
    def create_dataset(self):

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=TEST_DATASET_DATA_WITH_ALL_REFERENCE_FIELDS,
            created_at=timezone.now(),
        )

        dataset.save()

        return dataset
Пример #5
0
    def create_full_dataset(self):

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=TEST_DATASET_FULL_GENERIC_FORM,
            created_at=timezone.now(),
        )

        dataset.save()

        return dataset
Пример #6
0
    def create_notaxon_dataset(self):

        dataset_data = TEST_DATASET_DATA_WITH_ALL_REFERENCE_FIELDS
        del dataset_data['dataset']['reported_values'][
            '7e5c9390-61cf-4cb5-8b0f-9086b2f387ce']

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=dataset_data,
            created_at=timezone.now(),
        )

        dataset.save()

        return dataset
    def test_str(self):
        # test with and without taxon_latname
        dataset = self.create_dataset()

        self.assertEqual(str(dataset), 'Picea abies')

        test_data = copy.deepcopy(TEST_DATA_2)
        # delete the taxon

        taxon_field_uuid = test_data['dataset']['observation_form'][
            'taxonomic_reference']
        del test_data['dataset']['reported_values'][taxon_field_uuid]

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=test_data,
            created_at=timezone.now(),
        )

        dataset.save()

        self.assertEqual(str(dataset), str(_('Unidentified')))
    def test_nearby(self):

        dataset = self.create_dataset()
        user = self.create_user()

        dataset_2 = Dataset(
            app_uuid=self.app.uuid,
            data=TEST_DATASET_DATA_WITH_ALL_REFERENCE_FIELDS,
            created_at=timezone.now(),
            user=user,
        )

        dataset_2.save()

        dataset = Dataset.objects.get(pk=dataset.pk)

        nearby = dataset.nearby()

        self.assertEqual(len(nearby), 1)

        nearby_dataset = nearby[0]
        self.assertEqual(nearby_dataset.pk, dataset_2.pk)
        self.assertEqual(nearby_dataset.user, user)
    def test_validate_requirements(self):

        dataset = Dataset(
            app_uuid=self.app.uuid,
            data=None,
        )

        with self.assertRaises(ValueError):
            dataset.validate_requirements()

        test_data = copy.deepcopy(TEST_DATA_2)
        del test_data['dataset']['reported_values']['client_id']

        dataset.data = test_data

        with self.assertRaises(ValueError):
            dataset.validate_requirements()

        test_data['dataset']['reported_values']['client_id'] = None
        dataset.data = test_data

        with self.assertRaises(ValueError):
            dataset.validate_requirements()

        test_data['dataset']['reported_values']['client_id'] = ''
        dataset.data = test_data

        with self.assertRaises(ValueError):
            dataset.validate_requirements()