예제 #1
0
    def test_it_works(self):
        addon = AddonFactory()
        group = AddonGroupFactory()
        group.addons.add(addon)

        serializer = AddonGroupSerializer(group)

        assert serializer.data == {
            'id': group.id,
            'browser_version': '%s' % group.browser_version,
            'addons': [AddonSerializer(addon).data],
            'built_in_addons': [],
            'qa_addons': [],
            'shipped_addons': [],
            'qa_sync_diff': {
                'added': [addon.id],
                'downgraded': [],
                'removed': [],
                'upgraded': []
            },
            'qa_synced': False,
            'shipped_sync_diff': {
                'added': [addon.id],
                'downgraded': [],
                'removed': [],
                'upgraded': []
            },
            'shipped_synced': False
        }
예제 #2
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_it_can_delete_groups(self, api_client):
        group = AddonGroupFactory()

        res = api_client.delete('/api/v1/addon_group/%s/' % group.id)
        assert res.status_code == 204

        groups = AddonGroup.objects.all()
        assert groups.count() == 0
예제 #3
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_it_serves_groups(self, api_client):
        group = AddonGroupFactory()
        addon = AddonFactory()
        group.addons.add(addon)

        res = api_client.get('/api/v1/addon_group/')
        assert res.status_code == 200
        assert res.data[0]['addons'][0] == addon.id
예제 #4
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_adding_an_addon_that_doesnt_exist(self, api_client):
        group = AddonGroupFactory()

        res = api_client.post('/api/v1/addon_group/%s/add_addons/' % group.id,
                              {'addon_ids': [1]})

        assert res.status_code == 400
        assert group.addons.count() == 0
예제 #5
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_it_can_edit_groups(self, api_client):
        group = AddonGroupFactory(browser_version='1.0')

        res = api_client.patch('/api/v1/addon_group/%s/' % group.id,
                               {'browser_version': '2.0a'})
        assert res.status_code == 200

        group = AddonGroup.objects.first()
        assert group.browser_version == '2.0a'
예제 #6
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_groups(self, api_client):
        addon = AddonFactory()
        group = AddonGroupFactory()
        group.addons.add(addon)

        res = api_client.get('/api/v1/addon/%s/groups/' % addon.id)
        assert res.status_code == 200

        assert res.data[0]['id'] == group.id
예제 #7
0
    def test_it_can_edit_groups(self, api_client):
        group = AddonGroupFactory(channel_name='unchanged')

        res = api_client.patch('/api/v1/addon_group/%s/' % group.id,
                               {'channel_name': 'changed'})
        assert res.status_code == 200

        group = AddonGroup.objects.first()
        assert group.channel_name == 'changed'
예제 #8
0
 def test_release_data(self):
     addon = AddonFactory()
     addon_group = AddonGroupFactory(addons=[addon])
     assert addon_group.release_data == {
         'addons': {
             addon.name: addon.release_data
         },
         'hashFunction': 'sha512',
         'name': 'SystemAddons-ff{}-{}-{}'.format(addon_group.browser_version, addon.name,
                                                  addon.version),
         'schema_version': 5000
     }
예제 #9
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_update_built_in_addons_new_addon(self, api_client):
        group = AddonGroupFactory()

        res = api_client.post(
            '/api/v1/addon_group/update_built_in/', {
                'browser_version': group.browser_version,
                'addons': [{
                    'name': '*****@*****.**',
                    'version': '1.2',
                }]
            })

        assert res.status_code == 204
        assert group.built_in_addons.count() == 1
        assert Addon.objects.count() == 1
예제 #10
0
    def test_it_works(self):
        addon = AddonFactory()
        group = AddonGroupFactory()
        group.addons.add(addon)

        serializer = AddonGroupSerializer(group)

        assert serializer.data == {
            'id': group.id,
            'browser_version': '%s' % group.browser_version,
            'addons': [AddonSerializer(addon).data],
            'built_in_addons': [],
            'qa_addons': [],
            'shipped_addons': [],
        }
예제 #11
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_update_built_in_addons_existing_addon(self, api_client):
        group = AddonGroupFactory()
        addon = AddonFactory()

        res = api_client.post(
            '/api/v1/addon_group/update_built_in/', {
                'browser_version': group.browser_version,
                'addons': [{
                    'name': addon.name,
                    'version': addon.version,
                }]
            })

        assert res.status_code == 204
        assert group.built_in_addons.count() == 1
        assert Addon.objects.count() == 1
예제 #12
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_it_can_add_addons_to_group(self, api_client):
        group = AddonGroupFactory()
        a1 = AddonFactory()

        res = api_client.post('/api/v1/addon_group/%s/add_addons/' % group.id,
                              {'addon_ids': [a1.pk]})

        assert res.status_code == 204
        assert group.addons.count() == 1

        a2 = AddonFactory()
        a3 = AddonFactory()

        res = api_client.post('/api/v1/addon_group/%s/add_addons/' % group.id,
                              {'addon_ids': [a2.pk, a3.pk]})

        assert res.status_code == 204
        assert group.addons.count() == 3
예제 #13
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_update_built_in_addons_invalid_addons(self, api_client):
        group = AddonGroupFactory()
        addon = AddonFactory()
        group.built_in_addons.add(addon)

        res = api_client.post('/api/v1/addon_group/update_built_in/', {
            'browser_version': group.browser_version,
        })

        assert res.status_code == 400
        assert group.built_in_addons.count() == 1

        res = api_client.post('/api/v1/addon_group/update_built_in/', {
            'browser_version': group.browser_version,
            'addons': addon.id
        })

        assert res.status_code == 400
        assert group.built_in_addons.count() == 1
예제 #14
0
파일: test_api.py 프로젝트: Osmose/morgoth
    def test_it_can_remove_addons_from_group(self, api_client):
        group = AddonGroupFactory()
        group.addons.add(AddonFactory())
        group.addons.add(AddonFactory())
        group.addons.add(AddonFactory())

        res = api_client.post(
            '/api/v1/addon_group/%s/remove_addons/' % group.id,
            {'addon_ids': [group.addons.first().pk]})

        assert res.status_code == 204
        assert group.addons.count() == 2

        res = api_client.post(
            '/api/v1/addon_group/%s/remove_addons/' % group.id,
            {'addon_ids': [group.addons.first().pk,
                           group.addons.last().pk]})

        assert res.status_code == 204
        assert group.addons.count() == 0
예제 #15
0
    def test_it_works(self):
        addon = AddonFactory()
        group = AddonGroupFactory()
        group.addons.add(addon)

        serializer = AddonGroupSerializer(group)

        assert serializer.data == {
            'id':
            group.id,
            'channel_name':
            group.channel_name,
            'browser_version':
            '%s' % group.browser_version,
            'addons': [{
                'id': addon.id,
                'name': addon.name,
                'version': '%s' % addon.version,
                'ftp_url': addon.ftp_url
            }]
        }