def load(self): """Load data from the manifest file. The data from the manifest will be loaded and stored in this instance, allowing the caller to access it. """ # Let the exceptions bubble up. data = get_data_loader().load_by_path(self.absolute_manifest_url) self._releases = [] self._package_rules = [] self.created_timestamp = \ dateutil.parser.parse(data['created_timestamp']) self.last_updated_timestamp = \ dateutil.parser.parse(data['last_updated_timestamp']) self._releases = [ PackageRelease.deserialize(self, releases_data) for releases_data in data['releases'] ] self._package_rules = [ PackageRules.deserialize(self, rules_data) for rules_data in data['package_rules'] ] self._loaded = True
def test_deserialize_with_minimum_info(self): """Testing PackageRelease.deserialize with minimum info""" bundle = PackageBundle() channel = PackageChannel(bundle) release = PackageRelease.deserialize( channel, { 'version': '1.0', }) self.assertEqual(release.version, '1.0') self.assertEqual(release.release_type, PackageRelease.TYPE_STABLE) self.assertTrue(release.visible) self.assertEqual(release.release_notes_url, None)
def test_deserialize_with_all_info(self): """Testing PackageRelease.deserialize with all available info""" bundle = PackageBundle() channel = PackageChannel(bundle) release = PackageRelease.deserialize( channel, { 'version': '1.0', 'type': 'beta', 'visible': False, 'release_notes_url': 'https://example.com/1.0/', }) self.assertEqual(release.version, '1.0') self.assertEqual(release.release_type, PackageRelease.TYPE_BETA) self.assertFalse(release.visible) self.assertEqual(release.release_notes_url, 'https://example.com/1.0/')