Changeset View
Changeset View
Standalone View
Standalone View
swh/model/tests/test_cli.py
Show All 17 Lines | |||||
@pytest.mark.fs | @pytest.mark.fs | ||||
class TestIdentify(DataMixin, unittest.TestCase): | class TestIdentify(DataMixin, unittest.TestCase): | ||||
def setUp(self): | def setUp(self): | ||||
super().setUp() | super().setUp() | ||||
self.runner = CliRunner() | self.runner = CliRunner() | ||||
def assertSWHID(self, result, swhid): | def assertSWHID(self, result, swhid): | ||||
self.assertEqual(result.exit_code, 0) | self.assertEqual(result.exit_code, 0, result.output) | ||||
self.assertEqual(result.output.split()[0], swhid) | self.assertEqual(result.output.split()[0], swhid) | ||||
def test_no_args(self): | def test_no_args(self): | ||||
result = self.runner.invoke(cli.identify) | result = self.runner.invoke(cli.identify) | ||||
self.assertNotEqual(result.exit_code, 0) | self.assertNotEqual(result.exit_code, 0) | ||||
def test_content_id(self): | def test_content_id(self): | ||||
"""identify file content""" | """identify file content""" | ||||
▲ Show 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | def test_auto_directory(self): | ||||
with tempfile.TemporaryDirectory(prefix="swh.model.cli") as dirname: | with tempfile.TemporaryDirectory(prefix="swh.model.cli") as dirname: | ||||
result = self.runner.invoke(cli.identify, [dirname]) | result = self.runner.invoke(cli.identify, [dirname]) | ||||
self.assertEqual(result.exit_code, 0) | self.assertEqual(result.exit_code, 0) | ||||
self.assertRegex(result.output, r"^swh:\d+:dir:") | self.assertRegex(result.output, r"^swh:\d+:dir:") | ||||
def test_auto_origin(self): | def test_auto_origin(self): | ||||
"""automatic object type detection: origin""" | """automatic object type detection: origin""" | ||||
result = self.runner.invoke(cli.identify, ["https://github.com/torvalds/linux"]) | result = self.runner.invoke(cli.identify, ["https://github.com/torvalds/linux"]) | ||||
self.assertEqual(result.exit_code, 0) | self.assertEqual(result.exit_code, 0, result.output) | ||||
self.assertRegex(result.output, r"^swh:\d+:ori:") | self.assertRegex(result.output, r"^swh:\d+:ori:") | ||||
def test_verify_content(self): | def test_verify_content(self): | ||||
"""identifier verification""" | """identifier verification""" | ||||
self.make_contents(self.tmpdir_name) | self.make_contents(self.tmpdir_name) | ||||
for filename, content in self.contents.items(): | for filename, content in self.contents.items(): | ||||
expected_id = "swh:1:cnt:" + hash_to_hex(content["sha1_git"]) | expected_id = "swh:1:cnt:" + hash_to_hex(content["sha1_git"]) | ||||
# match | # match | ||||
path = os.path.join(self.tmpdir_name, filename) | path = os.path.join(self.tmpdir_name, filename) | ||||
result = self.runner.invoke(cli.identify, ["--verify", expected_id, path]) | result = self.runner.invoke(cli.identify, ["--verify", expected_id, path]) | ||||
self.assertEqual(result.exit_code, 0) | self.assertEqual(result.exit_code, 0, result.output) | ||||
# mismatch | # mismatch | ||||
with open(path, "a") as f: | with open(path, "a") as f: | ||||
f.write("trailing garbage to make verification fail") | f.write("trailing garbage to make verification fail") | ||||
result = self.runner.invoke(cli.identify, ["--verify", expected_id, path]) | result = self.runner.invoke(cli.identify, ["--verify", expected_id, path]) | ||||
self.assertEqual(result.exit_code, 1) | self.assertEqual(result.exit_code, 1) | ||||
def test_exclude(self): | def test_exclude(self): | ||||
Show All 14 Lines |