def test_publish_invalid(self):
# GIVEN datapackage that can be treated as valid by the dpm
self.valid_dp = datapackage.DataPackage({
"name": "some-datapackage",
"resources": [
{ "name": "some-resource", "path": "./data/some_data.csv", }
]
},
default_base_path='.')
patch('dpm.client.DataPackage', lambda *a: self.valid_dp).start()
patch('dpm.client.exists', lambda *a: True).start()
# AND the server that accepts any user
responses.add(
responses.POST, 'http://127.0.0.1:5000/api/auth/token',
json={'token': 'blabla'},
status=200)
# AND server rejects any datapackage as invalid
responses.add(
responses.PUT, 'http://127.0.0.1:5000/api/package/user/some-datapackage',
json={'message': 'invalid datapackage json'},
status=400)
# AND the client
client = Client(dp1_path, self.config)
# WHEN publish() is invoked
try:
result = client.publish()
except Exception as e:
result = e
# THEN HTTPStatusError should be raised
assert isinstance(result, HTTPStatusError)
# AND 'invalid datapackage json' should be printed to stdout
self.assertRegexpMatches(str(result), 'invalid datapackage json')
评论列表
文章目录