class TestIdentifierViews(OsfTestCase): def setUp(self): super(TestIdentifierViews, self).setUp() self.user = AuthUserFactory() self.node = RegistrationFactory(creator=self.user, is_public=True) def test_get_identifiers(self): self.node.set_identifier_value('doi', 'FK424601') self.node.set_identifier_value('ark', 'fk224601') res = self.app.get(self.node.api_url_for('node_identifiers_get')) assert_equal(res.json['doi'], 'FK424601') assert_equal(res.json['ark'], 'fk224601') def test_create_identifiers_not_exists(self): identifier = self.node._id url = furl.furl('https://ezid.cdlib.org/id') doi = settings.EZID_FORMAT.format(namespace=settings.DOI_NAMESPACE, guid=identifier) url.path.segments.append(doi) httpretty.register_uri( httpretty.PUT, url.url, body=to_anvl({ 'success': '{doi}osf.io/{ident} | {ark}osf.io/{ident}'.format( doi=settings.DOI_NAMESPACE, ark=settings.ARK_NAMESPACE, ident=identifier, ), }), status=201, priority=1, ) res = self.app.post( self.node.api_url_for('node_identifiers_post'), auth=self.user.auth, ) self.node.reload() assert_equal(res.json['doi'], self.node.get_identifier_value('doi')) assert_equal(res.json['ark'], self.node.get_identifier_value('ark')) assert_equal(res.status_code, 201) def test_create_identifiers_exists(self): identifier = self.node._id doi = settings.EZID_FORMAT.format(namespace=settings.DOI_NAMESPACE, guid=identifier) url = furl.furl('https://ezid.cdlib.org/id') url.path.segments.append(doi) httpretty.register_uri( httpretty.PUT, url.url, body='identifier already exists', status=400, ) httpretty.register_uri( httpretty.GET, url.url, body=to_anvl({ 'success': doi, }), status=200, ) res = self.app.post( self.node.api_url_for('node_identifiers_post'), auth=self.user.auth, ) self.node.reload() assert_equal(res.json['doi'], self.node.get_identifier_value('doi')) assert_equal(res.json['ark'], self.node.get_identifier_value('ark')) assert_equal(res.status_code, 201) def test_get_by_identifier(self): self.node.set_identifier_value('doi', 'FK424601') self.node.set_identifier_value('ark', 'fk224601') res_doi = self.app.get( self.node.web_url_for( 'get_referent_by_identifier', category='doi', value=self.node.get_identifier_value('doi'), ), ) assert_equal(res_doi.status_code, 302) assert_urls_equal(res_doi.headers['Location'], self.node.absolute_url) res_ark = self.app.get( self.node.web_url_for( 'get_referent_by_identifier', category='ark', value=self.node.get_identifier_value('ark'), ), ) assert_equal(res_ark.status_code, 302) assert_urls_equal(res_ark.headers['Location'], self.node.absolute_url) def test_get_by_identifier_not_found(self): self.node.set_identifier_value('doi', 'FK424601') res = self.app.get( self.node.web_url_for( 'get_referent_by_identifier', category='doi', value='fakedoi', ), expect_errors=True, ) assert_equal(res.status_code, 404)
class TestIdentifierViews(OsfTestCase): def setUp(self): super(TestIdentifierViews, self).setUp() self.user = AuthUserFactory() self.node = RegistrationFactory(creator=self.user, is_public=True) def test_get_identifiers(self): self.node.set_identifier_value('doi', 'FK424601') self.node.set_identifier_value('ark', 'fk224601') res = self.app.get(self.node.api_url_for('node_identifiers_get')) assert_equal(res.json['doi'], 'FK424601') assert_equal(res.json['ark'], 'fk224601') @httpretty.activate def test_create_identifiers_not_exists(self): identifier = self.node._id url = furl.furl('https://ezid.cdlib.org/id') doi = settings.EZID_FORMAT.format(namespace=settings.DOI_NAMESPACE, guid=identifier) url.path.segments.append(doi) httpretty.register_uri( httpretty.PUT, url.url, body=to_anvl({ 'success': '{doi}osf.io/{ident} | {ark}osf.io/{ident}'.format( doi=settings.DOI_NAMESPACE, ark=settings.ARK_NAMESPACE, ident=identifier, ), }), status=201, priority=1, ) res = self.app.post( self.node.api_url_for('node_identifiers_post'), auth=self.user.auth, ) self.node.reload() assert_equal( res.json['doi'], self.node.get_identifier_value('doi') ) assert_equal( res.json['ark'], self.node.get_identifier_value('ark') ) assert_equal(res.status_code, 201) @httpretty.activate def test_create_identifiers_exists(self): identifier = self.node._id doi = settings.EZID_FORMAT.format(namespace=settings.DOI_NAMESPACE, guid=identifier) url = furl.furl('https://ezid.cdlib.org/id') url.path.segments.append(doi) httpretty.register_uri( httpretty.PUT, url.url, body='identifier already exists', status=400, ) httpretty.register_uri( httpretty.GET, url.url, body=to_anvl({ 'success': doi, }), status=200, ) res = self.app.post( self.node.api_url_for('node_identifiers_post'), auth=self.user.auth, ) self.node.reload() assert_equal( res.json['doi'], self.node.get_identifier_value('doi') ) assert_equal( res.json['ark'], self.node.get_identifier_value('ark') ) assert_equal(res.status_code, 201) def test_get_by_identifier(self): self.node.set_identifier_value('doi', 'FK424601') self.node.set_identifier_value('ark', 'fk224601') res_doi = self.app.get( self.node.web_url_for( 'get_referent_by_identifier', category='doi', value=self.node.get_identifier_value('doi'), ), ) assert_equal(res_doi.status_code, 302) assert_urls_equal(res_doi.headers['Location'], self.node.absolute_url) res_ark = self.app.get( self.node.web_url_for( 'get_referent_by_identifier', category='ark', value=self.node.get_identifier_value('ark'), ), ) assert_equal(res_ark.status_code, 302) assert_urls_equal(res_ark.headers['Location'], self.node.absolute_url) def test_get_by_identifier_not_found(self): self.node.set_identifier_value('doi', 'FK424601') res = self.app.get( self.node.web_url_for( 'get_referent_by_identifier', category='doi', value='fakedoi', ), expect_errors=True, ) assert_equal(res.status_code, 404)
def test_mixin_set_create(self): node = RegistrationFactory() assert_is_none(node.get_identifier('dogid')) node.set_identifier_value('dogid', 'dog:1') assert_equal(node.get_identifier_value('dogid'), 'dog:1')