예제 #1
0
    def test_delete_multiple_resources(self):
        changes = []
        original = Dataset(resources=[
            {
                u"url": u"http://example.com/image.png",
                u"format": u"png",
                u"name": u"Image 1",
            },
            {
                u"url": u"http://example.com/image.png",
                u"format": u"png",
                u"name": u"Image 2",
            },
            {
                u"url": u"http://example.com/image.png",
                u"format": u"png",
                u"name": u"Image 3",
            },
        ])
        new = copy.deepcopy(original)
        del new["resources"][1]
        del new["resources"][0]
        new = helpers.call_action(u"package_update", **new)

        check_resource_changes(changes, original, new, u"fake")

        assert len(changes) == 2, changes
        assert changes[0]["type"] == u"delete_resource"
        if changes[0]["resource_name"] == u"Image 1":
            assert changes[1]["resource_name"] == u"Image 2"
        else:
            assert changes[0]["resource_name"] == u"Image 2"
            assert changes[1]["resource_name"] == u"Image 1"
예제 #2
0
    def test_change_resource_description(self):
        changes = []
        original = Dataset(resources=[
            {
                u"url": u"http://example.com/image.png",
                u"format": u"png",
                u"name": u"Image 1",
                u"description": u"First image",
            },
            {
                u"url": u"http://example.com/image.png",
                u"format": u"png",
                u"name": u"Image 2",
                u"description": u"Second image",
            },
        ])
        new = copy.deepcopy(original)
        new["resources"][1]["description"] = u"changed"
        new = helpers.call_action(u"package_update", **new)

        check_resource_changes(changes, original, new, u"fake")

        assert len(changes) == 1, changes
        assert changes[0]["type"] == u"resource_desc"
        assert changes[0]["method"] == u"change"
        assert changes[0]["resource_name"] == u"Image 2"
예제 #3
0
    def test_add_multiple_resources(self):
        changes = []
        original = Dataset()
        new = helpers.call_action(
            u"package_patch",
            id=original["id"],
            resources=[
                {
                    u"url": u"http://example.com/image.png",
                    u"format": u"png",
                    u"name": u"Image 1",
                },
                {
                    u"url": u"http://example.com/image2.png",
                    u"format": u"png",
                    u"name": u"Image 2",
                },
            ],
        )

        check_resource_changes(changes, original, new, u"fake")

        assert len(changes) == 2, changes
        assert changes[0]["type"] == u"new_resource"
        assert changes[1]["type"] == u"new_resource"
        if changes[0]["resource_name"] == u"Image 1":
            assert changes[1]["resource_name"] == u"Image 2"
        else:
            assert changes[1]["resource_name"] == u"Image 1"
            assert changes[0]["resource_name"] == u"Image 2"
예제 #4
0
    def test_delete_multiple_resources(self):
        changes = []
        original = Dataset(resources=[{
            u'url': u'http://example.com/image.png',
            u'format': u'png',
            u'name': u'Image 1'
        }, {
            u'url': u'http://example.com/image.png',
            u'format': u'png',
            u'name': u'Image 2'
        }, {
            u'url': u'http://example.com/image.png',
            u'format': u'png',
            u'name': u'Image 3'
        }])
        new = copy.deepcopy(original)
        del new['resources'][1]
        del new['resources'][0]
        new = helpers.call_action(u'package_update', **new)

        check_resource_changes(changes, original, new, u'fake')

        assert len(changes) == 2, changes
        eq(changes[0]['type'], u'delete_resource')
        if changes[0]['resource_name'] == u'Image 1':
            eq(changes[1]['resource_name'], u'Image 2')
        else:
            eq(changes[0]['resource_name'], u'Image 2')
            eq(changes[1]['resource_name'], u'Image 1')
예제 #5
0
    def test_add_multiple_resources(self):
        changes = []
        original = Dataset()
        new = helpers.call_action(u'package_patch',
                                  id=original['id'],
                                  resources=[{
                                      u'url': u'http://example.com/image.png',
                                      u'format': u'png',
                                      u'name': u'Image 1'
                                  }, {
                                      u'url': u'http://example.com/image2.png',
                                      u'format': u'png',
                                      u'name': u'Image 2'
                                  }])

        check_resource_changes(changes, original, new, u'fake')

        assert len(changes) == 2, changes
        eq(changes[0]['type'], u'new_resource')
        eq(changes[1]['type'], u'new_resource')
        if changes[0]['resource_name'] == u'Image 1':
            eq(changes[1]['resource_name'], u'Image 2')
        else:
            eq(changes[1]['resource_name'], u'Image 1')
            eq(changes[0]['resource_name'], u'Image 2')
예제 #6
0
    def test_remove_resource_extra(self):
        changes = []
        original = Dataset(resources=[{
            u"url": u"http://example.com/image.png",
            u"format": u"png",
            u"name": u"Image 1",
            u"key1": u"value1",
        }])
        new = copy.deepcopy(original)
        del new["resources"][0]["key1"]
        new = helpers.call_action(u"package_update", **new)

        check_resource_changes(changes, original, new, u"fake")

        assert len(changes) == 1, changes
        assert changes[0]["type"] == u"resource_extras"
        assert changes[0]["method"] == u"remove_one"
        assert changes[0]["key"] == u"key1"
예제 #7
0
    def test_remove_resource_extra(self):
        changes = []
        original = Dataset(resources=[{
            u'url': u'http://example.com/image.png',
            u'format': u'png',
            u'name': u'Image 1',
            u'key1': u'value1'
        }])
        new = copy.deepcopy(original)
        del new['resources'][0]['key1']
        new = helpers.call_action(u'package_update', **new)

        check_resource_changes(changes, original, new, u'fake')

        assert len(changes) == 1, changes
        eq(changes[0]['type'], u'resource_extras')
        eq(changes[0]['method'], u'remove_one')
        eq(changes[0]['key'], u'key1')
예제 #8
0
    def test_change_resource_format(self):
        changes = []
        original = Dataset(resources=[{
            u'url': u'http://example.com/image.png',
            u'format': u'png',
            u'name': u'Image 1'
        }, {
            u'url': u'http://example.com/image.png',
            u'format': u'png',
            u'name': u'Image 2'
        }])
        new = copy.deepcopy(original)
        new['resources'][1]['format'] = u'jpg'
        new = helpers.call_action(u'package_update', **new)

        check_resource_changes(changes, original, new, u'fake')

        assert len(changes) == 1, changes
        eq(changes[0]['type'], u'resource_format')
        eq(changes[0]['resource_name'], u'Image 2')