Exemplo n.º 1
0
    def create_sources(org, user):
        sources = dict()

        kwargs = {'parent_resource': org}

        for source_name in [
                'Locales', 'Classes', 'Datatypes', 'DescriptionTypes',
                'NameTypes', 'MapTypes'
        ]:
            if Source.objects.filter(organization=org,
                                     mnemonic=source_name,
                                     version=HEAD).exists():
                source = Source.objects.get(organization=org,
                                            mnemonic=source_name,
                                            version=HEAD)
            else:
                source = Source(name=source_name,
                                mnemonic=source_name,
                                full_name=source_name,
                                organization=org,
                                created_by=user,
                                default_locale='en',
                                supported_locales=['en'],
                                updated_by=user,
                                version=HEAD)
                Source.persist_new(source, user, **kwargs)

            sources[source_name] = source

        return sources
Exemplo n.º 2
0
    def test_persist_changes_positive(self):
        kwargs = {
            'parent_resource': self.user
        }
        errors = Source.persist_new(self.new_source, self.user, **kwargs)
        self.assertEqual(len(errors), 0)
        saved_source = Source.objects.get(name=self.new_source.name)

        name = saved_source.name

        self.new_source.name = "%s_prime" % name
        self.new_source.source_type = 'Reference'

        errors = Source.persist_changes(self.new_source, self.user, **kwargs)
        updated_source = Source.objects.get(mnemonic=self.new_source.mnemonic)

        self.assertEqual(len(errors), 0)
        self.assertEqual(updated_source.num_versions, 1)
        self.assertEqual(updated_source.head, updated_source)
        self.assertEqual(updated_source.name, self.new_source.name)
        self.assertEqual(updated_source.source_type, 'Reference')
        self.assertEqual(
            updated_source.uri,
            '/users/{username}/sources/{source}/'.format(username=self.user.username, source=updated_source.mnemonic)
        )
Exemplo n.º 3
0
    def test_persist_new_negative__no_owner(self):
        kwargs = {'parent_resource': self.user}

        errors = Source.persist_new(self.new_source, None, **kwargs)

        self.assertEqual(errors, {'created_by': 'Creator cannot be None.'})
        self.assertFalse(
            Source.objects.filter(name=self.new_source.name).exists())
Exemplo n.º 4
0
    def test_persist_new_negative__no_name(self):
        kwargs = {'parent_resource': self.user}
        self.new_source.name = None

        errors = Source.persist_new(self.new_source, self.user, **kwargs)

        self.assertEqual(errors, {'name': ['This field cannot be null.']})
        self.assertFalse(
            Source.objects.filter(name=self.new_source.name).exists())
Exemplo n.º 5
0
    def test_persist_new_positive(self):
        kwargs = {'parent_resource': self.user}
        errors = Source.persist_new(self.new_source, self.user, **kwargs)

        source = Source.objects.get(name=self.new_source.name)
        self.assertEqual(len(errors), 0)
        self.assertTrue(
            Source.objects.filter(name=self.new_source.name).exists())
        self.assertEqual(source.num_versions, 1)
        self.assertEqual(source.get_latest_version(), source)
        self.assertEqual(source.version, 'HEAD')
        self.assertFalse(source.released)
        self.assertEqual(
            source.uri, '/users/{username}/sources/{source}/'.format(
                username=self.user.username, source=source.mnemonic))
Exemplo n.º 6
0
 def process(self):
     source = Source(**self.data)
     errors = Source.persist_new(source, self.user)
     return errors or CREATED
Exemplo n.º 7
0
    def test_persist_new_negative__no_parent(self):
        errors = Source.persist_new(self.new_source, self.user)

        self.assertEqual(errors, {'parent': 'Parent resource cannot be None.'})
        self.assertFalse(
            Source.objects.filter(name=self.new_source.name).exists())
Exemplo n.º 8
0
 def create(self, validated_data):
     source = self.prepare_object(validated_data)
     user = self.context['request'].user
     errors = Source.persist_new(source, user)
     self._errors.update(errors)
     return source