def test_invalid_info(self): build = BuildFactory.build() info = io.BytesIO('\n'.join(['%s=%s' % (k, v) for k, v in create_info(build).items()]).encode('utf-8')) with create_spk(build, info=info) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Invalid INFO', str(cm.exception))
def test_empty_conf_folder(self): build = BuildFactory.build(version__conf_dependencies=None, version__conf_conflicts=None) info = create_info(build) info['support_conf_folder'] = 'yes' with create_spk(build, info=info, with_conf=True) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Empty conf folder', str(cm.exception))
def test_checksum_mismatch(self): build = BuildFactory.build() info = create_info(build) info['checksum'] = 'checksum' with create_spk(build, info=info) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Checksum mismatch', str(cm.exception))
def test_missing_info_package(self): build = BuildFactory.build() info = create_info(build) del info['package'] with create_spk(build, info=info) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Missing INFO: package', str(cm.exception))
def test_invalid_info_boolean_startable(self): build = BuildFactory.build() info = create_info(build) info['startable'] = 'Something' with create_spk(build, info=info) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Invalid INFO boolean: startable', str(cm.exception))
def test_invalid_info_icon(self): build = BuildFactory.build() info = create_info(build) info['package_icon_120'] = 'package_icon_120' with create_spk(build, info=info) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Invalid INFO icon: package_icon_120', str(cm.exception))
def test_wrong_info_encoding(self): build = BuildFactory.build() info = create_info(build) info['description'] = 'Description en français' with create_spk(build, info=info, info_encoding='latin-1') as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual('Wrong INFO encoding', str(cm.exception))
def test_post_wrong_version(self): user = UserFactory(roles=[Role.find('developer'), Role.find('package_admin')]) db.session.commit() build = BuildFactory.build() info = create_info(build) info['version'] = '1.2.3~4' with create_spk(build, info=info) as spk: response = self.client.post(url_for('api.packages'), headers=authorization_header(user), data=spk.read()) self.assert422(response) self.assertIn('Invalid version', response.data.decode(response.charset))
def test_post_wrong_description_language(self): user = UserFactory(roles=[Role.find('developer'), Role.find('package_admin')]) db.session.commit() build = BuildFactory.build() info = create_info(build) info['description_zzz'] = 'description_zzz' with create_spk(build, info=info) as spk: response = self.client.post(url_for('api.packages'), headers=authorization_header(user), data=spk.read()) self.assert422(response) self.assertIn('Unknown INFO description language', response.data.decode(response.charset))
def test_missing_conf_folder(self): build = BuildFactory.build( version__conf_dependencies=None, version__conf_conflicts=None, version__conf_privilege=None, version__conf_resource=None, ) info = create_info(build) info["support_conf_folder"] = "yes" with create_spk(build, info=info, with_conf=False) as f: with self.assertRaises(SPKParseError) as cm: SPK(f) self.assertEqual("Missing conf folder", str(cm.exception))
def test_post_wrong_version(self): user = UserFactory( roles=[Role.find('developer'), Role.find('package_admin')]) db.session.commit() build = BuildFactory.build() info = create_info(build) info['version'] = '1.2.3~4' with create_spk(build, info=info) as spk: response = self.client.post(url_for('api.packages'), headers=authorization_header(user), data=spk.read()) self.assert422(response) self.assertIn('Invalid version', response.data.decode(response.charset))
def test_post_wrong_description_language(self): user = UserFactory( roles=[Role.find('developer'), Role.find('package_admin')]) db.session.commit() build = BuildFactory.build() info = create_info(build) info['description_zzz'] = 'description_zzz' with create_spk(build, info=info) as spk: response = self.client.post(url_for('api.packages'), headers=authorization_header(user), data=spk.read()) self.assert422(response) self.assertIn('Unknown INFO description language', response.data.decode(response.charset))
def test_post_wrong_version(self): user = UserFactory( roles=[Role.find("developer"), Role.find("package_admin")]) db.session.commit() build = BuildFactory.build() info = create_info(build) info["version"] = "1.2.3~4" with create_spk(build, info=info) as spk: response = self.client.post( url_for("api.packages"), headers=authorization_header(user), data=spk.read(), ) self.assert422(response) self.assertIn("Invalid version", response.data.decode(response.charset))
def test_post_wrong_displayname_language(self): user = UserFactory( roles=[Role.find("developer"), Role.find("package_admin")]) db.session.commit() build = BuildFactory.build() info = create_info(build) info["displayname_zzz"] = "displayname_zzz" with create_spk(build, info=info) as spk: response = self.client.post( url_for("api.packages"), headers=authorization_header(user), data=spk.read(), ) self.assert422(response) self.assertIn("Unknown INFO displayname language", response.data.decode(response.charset))
def test_info_blank_like(self): build = BuildFactory.build() info = io.BytesIO('\n'.join(['%s="%s"\n' % (k, v) for k, v in create_info(build).items()]).encode('utf-8')) with create_spk(build, info=info) as f: SPK(f)