def test_dryrun(path=None): ds = Dataset(path).create() # see that the correct request would be made res = ds.create_sibling_gin('bogus', credential='some', dry_run=True) assert_result_count(res, 1) res = res[0] eq_(res['request_url'], 'https://gin.g-node.org/api/v1/user/repos') # we dont care much which user-agent, but there should be one assert_in('user-agent', res['request_headers']) # only a placeholder no-token makes it into the request assert_in('NO-TOKEN-AVAILABLE', res['request_headers']['authorization']) # correct name eq_(res['request_data']['name'], 'bogus') # public by default eq_(res['request_data']['private'], False) # it is important that we do not tell the portal to generate some # repo content eq_(res['request_data']['auto_init'], False) # org repo res = ds.create_sibling_gin('strangeorg/bogus', credential='some', dry_run=True) assert_result_count(res, 1) res = res[0] eq_(res['request_data']['name'], 'bogus') eq_(res['request_url'], 'https://gin.g-node.org/api/v1/org/strangeorg/repos') # recursive name, building subds = ds.create('subds') res = ds.create_sibling_gin( 'bogus', recursive=True, credential='some', dry_run=True) eq_(res[-1]['request_data']['name'], 'bogus-subds') # ignore unavailable datasets ds.drop('subds', what='all', reckless='kill', recursive=True) res = ds.create_sibling_gin( 'bogus', recursive=True, credential='some', dry_run=True) eq_(len(res), 1)
def test_invalid_call(path=None): # no dataset assert_raises(ValueError, create_sibling_gin, 'bogus', dataset=path) ds = Dataset(path).create() # without authorization # force disable any configured token with patch('datalad.distributed.create_sibling_ghlike.Token', None): assert_raises(ValueError, ds.create_sibling_gin, 'bogus') # unsupported name assert_raises( ValueError, ds.create_sibling_gin, 'bo gus', credential='some') # conflicting sibling name ds.siblings('add', name='gin', url='http://example.com', result_renderer='disabled') res = ds.create_sibling_gin( 'bogus', name='gin', credential='some', on_failure='ignore', dry_run=True) assert_status('error', res) assert_in_results( res, status='error', message=('already has a configured sibling "%s"', 'gin'))