def test_instanciate_without_data(self): """Without data, we load the data from the file path.""" data = {'id': 'some-id'} fake_zip = utils.make_xpi({'manifest.json': json.dumps(data)}) extractor = utils.ManifestJSONExtractor(zipfile.ZipFile(fake_zip)) assert extractor.data == data
def test_no_manifest(self): fake_zip = utils.make_xpi({'dummy': 'dummy'}) with self.assertRaises(forms.ValidationError) as exc: utils.Extractor.parse(fake_zip) assert exc.exception.message == ( 'No install.rdf or manifest.json found')
def make_langpack(version): versions = (version, '%s.*' % version) for version in versions: AppVersion.objects.get_or_create(application=amo.FIREFOX.id, version=version, version_int=version_int(version)) return make_xpi({ 'install.rdf': """<?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest" em:id="*****@*****.**" em:name="Foo Language Pack" em:version="{0}" em:type="8" em:creator="mozilla.org"> <em:targetApplication> <Description> <em:id>{{ec8030f7-c20a-464f-9b0e-13a3a9e97384}}</em:id> <em:minVersion>{0}</em:minVersion> <em:maxVersion>{1}</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF> """.format(*versions) }).read()
def test_ignore_package_json(self, rdf_extractor, manifest_json_extractor): # Previously we preferred `package.json` to `install.rdf` which # we don't anymore since # https://github.com/mozilla/addons-server/issues/2460 fake_zip = utils.make_xpi({'install.rdf': '', 'package.json': ''}) utils.Extractor.parse(fake_zip) assert rdf_extractor.called assert not manifest_json_extractor.called
def test_parse_manifest_json(self, rdf_extractor, manifest_json_extractor): fake_zip = utils.make_xpi({'manifest.json': ''}) utils.Extractor.parse(fake_zip) assert not rdf_extractor.called assert manifest_json_extractor.called
def test_parse_install_rdf(self, rdf_extractor, manifest_json_extractor): fake_zip = utils.make_xpi({'install.rdf': ''}) utils.Extractor.parse(fake_zip) assert rdf_extractor.called assert not manifest_json_extractor.called