예제 #1
0
    def test_normalizeddata(self):
        work = factories.AbstractCreativeWorkFactory()
        work.change.change_set.normalized_data.delete()

        assert models.Change.objects.count() == 0
        assert models.ChangeSet.objects.count() == 0
        assert models.AbstractCreativeWork.objects.count() == 0
예제 #2
0
 def test_change_datetime_change(self, graph):
     tag = factories.AbstractCreativeWorkFactory()
     assert graph.create(
         IDObfuscator.encode(tag), 'tag', {
             'date_updated': pendulum.fromtimestamp(0).isoformat()
         }).change == {
             'date_updated': pendulum.fromtimestamp(0).isoformat()
         }
예제 #3
0
    def test_no_truncate(self):
        cws = [factories.AbstractCreativeWorkFactory() for _ in range(10)]

        assert models.CreativeWork.objects.all().count() == 10
        assert models.AbstractCreativeWorkVersion.objects.count() == 10

        for i, cw in enumerate(cws):
            cw.delete()
            assert models.CreativeWork.objects.all().count() == 9 - i
            assert models.AbstractCreativeWorkVersion.objects.count() == 9 - i
예제 #4
0
    def test_rawdata(self):
        work = factories.AbstractCreativeWorkFactory(
            change__change_set__normalized_data__raw=models.RawData.objects.
            store_data('doc_id', b'', factories.ShareUserFactory(), ''))
        work.change.change_set.normalized_data.delete()

        assert models.Change.objects.count() == 0
        assert models.ChangeSet.objects.count() == 0
        assert models.NormalizedData.objects.count() == 0
        assert models.AbstractCreativeWork.objects.count() == 0
예제 #5
0
    def test_one_version(self):
        cw = factories.AbstractCreativeWorkFactory(title='All About Cats')

        assert models.CreativeWork.objects.all().count() == 1
        assert models.AbstractCreativeWorkVersion.objects.count() == 1

        cw.delete()

        assert models.CreativeWork.objects.all().count() == 0
        assert models.AbstractCreativeWorkVersion.objects.count() == 0
예제 #6
0
    def test_rawdata(self, source_config):
        work = factories.AbstractCreativeWorkFactory(
            change__change_set__normalized_data__raw=models.RawDatum.objects.
            store_data(source_config, FetchResult('unique', 'data')))
        work.change.change_set.normalized_data.delete()

        assert models.Change.objects.count() == 0
        assert models.ChangeSet.objects.count() == 0
        assert models.NormalizedData.objects.count() == 0
        assert models.AbstractCreativeWork.objects.count() == 0
예제 #7
0
    def test_many_versions(self):
        cw = factories.AbstractCreativeWorkFactory(title='All about cats')
        cw.administrative_change(title='All About Kets')

        assert models.CreativeWork.objects.all().count() == 1
        assert models.AbstractCreativeWorkVersion.objects.count() == 2

        assert cw.versions.count() == 2

        cw.delete()

        assert models.CreativeWork.objects.all().count() == 0
        assert models.AbstractCreativeWorkVersion.objects.count() == 0
예제 #8
0
 def test_change_extra(self, graph):
     tag_model = factories.AbstractCreativeWorkFactory(extra=factories.ExtraDataFactory(
         change=factories.ChangeFactory(),
         data={'testing': {
             'Same': 'here',
             'Overwrite': 'me',
             'Dont touch': 'this one',
         }}
     ))
     graph.namespace = 'testing'
     tag = graph.create(None, 'tag', {'extra': {'Same': 'here', 'Overwrite': 'you', 'New key': 'here'}})
     tag.instance = tag_model
     assert tag.change == {'extra': {
         'New key': 'here',
         'Overwrite': 'you',
     }}
예제 #9
0
    def test_one_to_one_inverse(self):
        work = factories.AbstractCreativeWorkFactory(
            extra=factories.ExtraDataFactory())

        assert work.extra is not None
        assert work.extra_version is not None

        for model, (count, version_count) in {
                models.AbstractCreativeWork: (1, 1),
                models.ExtraData: (1, 1),
        }.items():
            assert model.objects.count() == count
            assert model.VersionModel.objects.count() == version_count

        work.extra.delete()

        for model, (count, version_count) in {
                models.AbstractCreativeWork: (0, 0),
                models.ExtraData: (0, 0),
        }.items():
            assert model.objects.count() == count
            assert model.VersionModel.objects.count() == version_count
예제 #10
0
    def test_many_to_many(self):
        work = factories.AbstractCreativeWorkFactory()
        for i in range(10):
            factories.ThroughTagsFactory(creative_work=work,
                                         tag=factories.TagFactory(name=str(i)))

        for model, (count, version_count) in {
                models.AbstractCreativeWork: (1, 1),
                models.ThroughTags: (10, 10),
                models.Tag: (10, 10),
        }.items():
            assert model.objects.count() == count
            assert model.VersionModel.objects.count() == version_count

        work.delete()

        for model, (count, version_count) in {
                models.AbstractCreativeWork: (0, 0),
                models.ThroughTags: (0, 0),
                models.Tag: (10, 10),
        }.items():
            assert model.objects.count() == count
            assert model.VersionModel.objects.count() == version_count
예제 #11
0
    def test_changeset(self):
        work = factories.AbstractCreativeWorkFactory()
        work.change.change_set.delete()

        assert models.Change.objects.count() == 0
        assert models.AbstractCreativeWork.objects.count() == 0
예제 #12
0
 def test_change_datetime_no_change(self, graph):
     work = factories.AbstractCreativeWorkFactory()
     assert graph.create(IDObfuscator.encode(work), work._meta.model_name, {'date_updated': work.date_updated.isoformat()}).change == {}
예제 #13
0
    def test_change(self):
        work = factories.AbstractCreativeWorkFactory()
        work.change.delete()

        assert models.AbstractCreativeWork.objects.exclude(
            id=None).count() == 0