def test_import_resources(self, registry, log): from adhocracy_core.scripts.import_resources import _import_resources (self._tempfd, filename) = mkstemp() with open(filename, 'w') as f: f.write(json.dumps([ {"path": "/", "content_type": "adhocracy_core.resources.organisation.IOrganisation", "data": {"adhocracy_core.sheets.name.IName": {"name": "alt-treptow"}}} ])) root = registry.content.create(IRootPool.__identifier__) _import_resources(root, registry, filename) assert IOrganisation.providedBy(root['alt-treptow']) assert get_sheet_field(root['alt-treptow'], IName, 'name') == 'alt-treptow'
def test_import_resource_create_group(self, registry, log): from adhocracy_core.scripts.import_resources import _import_resources (self._tempfd, filename) = mkstemp() with open(filename, 'w') as f: f.write(json.dumps([ {"path": "/principals/groups", "content_type": "adhocracy_core.resources.principal.IGroup", "data": {"adhocracy_core.sheets.name.IName": {"name": "moderators-abc"}, "adhocracy_core.sheets.principal.IGroup": {"roles": ["creator", "initiator"]} } } ])) root = registry.content.create(IRootPool.__identifier__) _import_resources(root, registry, filename)
def test_import_resources_invalid_data(self, registry, log): from adhocracy_core.scripts.import_resources import _import_resources import colander (self._tempfd, filename) = mkstemp() with open(filename, 'w') as f: f.write(json.dumps([ {"path": "/", "content_type": "adhocracy_core.resources.pool.IPool", "data": {"adhocracy_core.sheets.name.IName": {"name": "NameSample"}, "adhocracy_core.sheets.title.ITitle": {"title": 42} }} ])) root = registry.content.create(IRootPool.__identifier__) with pytest.raises(colander.Invalid): _import_resources(root, registry, filename)
def test_import_resources_already_oneleveldeep(self, registry, principals, log): from adhocracy_core.scripts.import_resources import _import_resources (self._tempfd, filename) = mkstemp() with open(filename, 'w') as f: f.write(json.dumps([ {"path": "/orga", "content_type": "adhocracy_core.resources.organisation.IOrganisation", "data": {"adhocracy_core.sheets.name.IName": {"name": "alt-treptow"}}} ])) root = registry.content.create(IRootPool.__identifier__) appstructs = {'adhocracy_core.sheets.name.IName': {'name': 'orga'}} registry.content.create(IOrganisation.__identifier__, root, appstructs=appstructs, registry=registry) _import_resources(root, registry, filename) assert IOrganisation.providedBy(root['orga']['alt-treptow'])