diff --git a/tests/test_clone_version.py b/tests/test_clone_version.py index d3e0bd9..00e0fb3 100644 --- a/tests/test_clone_version.py +++ b/tests/test_clone_version.py @@ -1,22 +1,28 @@ import pygobbler as pyg import tempfile import os +import pytest -_, staging, registry, url = pyg.start_gobbler() -pyg.remove_project("test", staging=staging, url=url) -pyg.create_project("test", staging=staging, url=url) -src = pyg.allocate_upload_directory(staging) -with open(os.path.join(src, "foo"), "w") as f: - f.write("BAR") -os.mkdir(os.path.join(src, "whee")) -with open(os.path.join(src, "whee", "blah"), "w") as f: - f.write("stuff") +@pytest.fixture(scope="module") +def setup(): + _, staging, registry, url = pyg.start_gobbler() + pyg.remove_project("test", staging=staging, url=url) + pyg.create_project("test", staging=staging, url=url) -pyg.upload_directory("test", "clone", "v1", src, staging=staging, url=url) + src = pyg.allocate_upload_directory(staging) + with open(os.path.join(src, "foo"), "w") as f: + f.write("BAR") + os.mkdir(os.path.join(src, "whee")) + with open(os.path.join(src, "whee", "blah"), "w") as f: + f.write("stuff") + pyg.upload_directory("test", "clone", "v1", src, staging=staging, url=url) + + +def test_clone_version(setup): + _, staging, registry, url = pyg.start_gobbler() -def test_clone_version(): dest = tempfile.mkdtemp() out = pyg.clone_version("test", "clone", "v1", dest, registry=registry) diff --git a/tests/test_create_project.py b/tests/test_create_project.py index d35084a..6476dd3 100644 --- a/tests/test_create_project.py +++ b/tests/test_create_project.py @@ -1,9 +1,10 @@ import pygobbler as pyg import datetime -_, staging, registry, url = pyg.start_gobbler() def test_create_project(): + _, staging, registry, url = pyg.start_gobbler() + pyg.create_project( project="test-create", owners=["LTLA", "jkanche"], diff --git a/tests/test_fetch.py b/tests/test_fetch.py index 8e58e22..54ee96d 100644 --- a/tests/test_fetch.py +++ b/tests/test_fetch.py @@ -1,24 +1,30 @@ import pygobbler as pyg import tempfile import os +import pytest -_, staging, registry, url = pyg.start_gobbler() -pyg.remove_project("test", staging=staging, url=url) -pyg.create_project("test", staging=staging, url=url) +@pytest.fixture(scope="module") +def setup(): + _, staging, registry, url = pyg.start_gobbler() -src = pyg.allocate_upload_directory(staging) -with open(os.path.join(src, "foo"), "w") as f: - f.write("BAR") -os.mkdir(os.path.join(src, "whee")) -with open(os.path.join(src, "whee", "blah"), "w") as f: - f.write("stuff") + pyg.remove_project("test", staging=staging, url=url) + pyg.create_project("test", staging=staging, url=url) -pyg.upload_directory("test", "fetch", "v1", src, staging=staging, url=url) -pyg.upload_directory("test", "fetch", "v2", src, staging=staging, url=url) + src = pyg.allocate_upload_directory(staging) + with open(os.path.join(src, "foo"), "w") as f: + f.write("BAR") + os.mkdir(os.path.join(src, "whee")) + with open(os.path.join(src, "whee", "blah"), "w") as f: + f.write("stuff") + pyg.upload_directory("test", "fetch", "v1", src, staging=staging, url=url) + pyg.upload_directory("test", "fetch", "v2", src, staging=staging, url=url) + + +def test_fetch_manifest(setup): + _, staging, registry, url = pyg.start_gobbler() -def test_fetch_manifest(): man = pyg.fetch_manifest("test", "fetch", "v1", registry=registry, url=url) assert man["foo"]["size"] == 3 assert man["whee/blah"]["size"] == 5 @@ -28,7 +34,9 @@ def test_fetch_manifest(): assert man == rman -def test_fetch_summary(): +def test_fetch_summary(setup): + _, staging, registry, url = pyg.start_gobbler() + summ = pyg.fetch_summary("test", "fetch", "v1", registry=registry, url=url) assert isinstance(summ["upload_user_id"], str) assert isinstance(summ["upload_start"], str) @@ -39,19 +47,25 @@ def test_fetch_summary(): assert summ == rsumm -def test_fetch_latest(): +def test_fetch_latest(setup): + _, staging, registry, url = pyg.start_gobbler() + assert pyg.fetch_latest("test", "fetch", registry=registry, url=url) == "v2" assert pyg.fetch_latest("test", "missing", registry=registry, url=url) is None assert pyg.fetch_latest("test", "fetch", registry=registry, url=url, force_remote=True) == "v2" assert pyg.fetch_latest("test", "missing", registry=registry, url=url, force_remote=True) is None -def test_fetch_usage(): +def test_fetch_usage(setup): + _, staging, registry, url = pyg.start_gobbler() + assert pyg.fetch_usage("test", registry=registry, url=url) > 0 assert pyg.fetch_usage("test", registry=registry, url=url, force_remote=True) > 0 -def test_fetch_permissions(): +def test_fetch_permissions(setup): + _, staging, registry, url = pyg.start_gobbler() + perms = pyg.fetch_permissions("test", registry=registry, url=url) assert isinstance(perms["owners"], list) assert isinstance(perms["uploaders"], list) @@ -60,7 +74,9 @@ def test_fetch_permissions(): assert perms == rperms -def test_fetch_directory(): +def test_fetch_directory(setup): + _, staging, registry, url = pyg.start_gobbler() + dir = pyg.fetch_directory("test/fetch/v2", registry=registry, url=url) assert dir.startswith(registry) with open(os.path.join(dir, "foo"), "r") as handle: diff --git a/tests/test_list.py b/tests/test_list.py index 8b020ab..047ed25 100644 --- a/tests/test_list.py +++ b/tests/test_list.py @@ -1,29 +1,35 @@ import pygobbler as pyg import os +import pytest -_, staging, registry, url = pyg.start_gobbler() -pyg.remove_project("test", staging=staging, url=url) -pyg.remove_project("more-list-test", staging=staging, url=url) -pyg.create_project("test", staging=staging, url=url) -pyg.create_project("more-list-test", staging=staging, url=url) +@pytest.fixture(scope="module") +def setup(): + _, staging, registry, url = pyg.start_gobbler() -src = pyg.allocate_upload_directory(staging) -with open(os.path.join(src, "foo"), "w") as f: - f.write("BAR") -os.mkdir(os.path.join(src, "whee")) -with open(os.path.join(src, "whee", "blah"), "w") as f: - f.write("stuff") -with open(os.path.join(src, "whee2"), "w") as f: - f.write("ABCDEFGHIJK") + pyg.remove_project("test", staging=staging, url=url) + pyg.remove_project("more-list-test", staging=staging, url=url) + pyg.create_project("test", staging=staging, url=url) + pyg.create_project("more-list-test", staging=staging, url=url) -pyg.upload_directory("test", "list", "v1", src, staging=staging, url=url) -pyg.upload_directory("test", "list", "v2", src, staging=staging, url=url) -pyg.upload_directory("test", "more-list", "foo", src, staging=staging, url=url) -pyg.upload_directory("more-list-test", "list", "bar", src, staging=staging, url=url) + src = pyg.allocate_upload_directory(staging) + with open(os.path.join(src, "foo"), "w") as f: + f.write("BAR") + os.mkdir(os.path.join(src, "whee")) + with open(os.path.join(src, "whee", "blah"), "w") as f: + f.write("stuff") + with open(os.path.join(src, "whee2"), "w") as f: + f.write("ABCDEFGHIJK") + pyg.upload_directory("test", "list", "v1", src, staging=staging, url=url) + pyg.upload_directory("test", "list", "v2", src, staging=staging, url=url) + pyg.upload_directory("test", "more-list", "foo", src, staging=staging, url=url) + pyg.upload_directory("more-list-test", "list", "bar", src, staging=staging, url=url) + + +def test_list_projects(setup): + _, staging, registry, url = pyg.start_gobbler() -def test_list_projects(): projects = pyg.list_projects(registry=registry, url=url) assert "test" in projects assert "more-list-test" in projects @@ -32,7 +38,9 @@ def test_list_projects(): assert sorted(projects) == sorted(rprojects) -def test_list_assets(): +def test_list_assets(setup): + _, staging, registry, url = pyg.start_gobbler() + assets = pyg.list_assets("test", registry=registry, url=url) assert "list" in assets assert "more-list" in assets @@ -41,7 +49,9 @@ def test_list_assets(): assert sorted(assets) == sorted(rassets) -def test_list_versions(): +def test_list_versions(setup): + _, staging, registry, url = pyg.start_gobbler() + versions = pyg.list_versions("test", "list", registry=registry, url=url) assert "v1" in versions assert "v2" in versions @@ -50,7 +60,9 @@ def test_list_versions(): assert sorted(versions) == sorted(rversions) -def test_list_files(): +def test_list_files(setup): + _, staging, registry, url = pyg.start_gobbler() + files = sorted(pyg.list_files("test", "list", "v1", registry=registry, url=url)) assert files == sorted(["..summary", "..manifest", "foo", "whee/blah", "whee2"]) rfiles = sorted(pyg.list_files("test", "list", "v1", registry=registry, url=url, force_remote=True)) diff --git a/tests/test_remove.py b/tests/test_remove.py index 2772049..ffcbf67 100644 --- a/tests/test_remove.py +++ b/tests/test_remove.py @@ -2,31 +2,38 @@ import tempfile import os import time +import pytest -_, staging, registry, url = pyg.start_gobbler() -pyg.remove_project("test-R-remove", staging=staging, url=url) -pyg.create_project("test-R-remove", staging=staging, url=url) +@pytest.fixture(scope="module") +def setup(): + _, staging, registry, url = pyg.start_gobbler() -src = pyg.allocate_upload_directory(staging) -pyg.upload_directory("test-R-remove", "sacrifice", "v1", src, staging=staging, url=url) -time.sleep(1.1) # force timestamps to be different for next versions. -pyg.upload_directory("test-R-remove", "sacrifice", "v2", src, staging=staging, url=url) + pyg.remove_project("test-R-remove", staging=staging, url=url) + pyg.create_project("test-R-remove", staging=staging, url=url) + + src = pyg.allocate_upload_directory(staging) + pyg.upload_directory("test-R-remove", "sacrifice", "v1", src, staging=staging, url=url) + time.sleep(1.1) # force timestamps to be different for next versions. + pyg.upload_directory("test-R-remove", "sacrifice", "v2", src, staging=staging, url=url) -def test_remove_version(): +def test_remove_version(setup): + _, staging, registry, url = pyg.start_gobbler() assert os.path.exists(os.path.join(registry, "test-R-remove", "sacrifice", "v2")) pyg.remove_version("test-R-remove", "sacrifice", "v2", staging=staging, url=url) assert not os.path.exists(os.path.join(registry, "test-R-remove", "sacrifice", "v2")) -def test_remove_asset(): +def test_remove_asset(setup): + _, staging, registry, url = pyg.start_gobbler() assert os.path.exists(os.path.join(registry, "test-R-remove", "sacrifice")) pyg.remove_asset("test-R-remove", "sacrifice", staging=staging, url=url) assert not os.path.exists(os.path.join(registry, "test-R-remove", "sacrifice")) -def test_remove_project(): +def test_remove_project(setup): + _, staging, registry, url = pyg.start_gobbler() assert os.path.exists(os.path.join(registry, "test-R-remove")) pyg.remove_project("test-R-remove", staging=staging, url=url) assert not os.path.exists(os.path.join(registry, "test-R-remove")) diff --git a/tests/test_service_info.py b/tests/test_service_info.py index c4143d6..eeb4de4 100644 --- a/tests/test_service_info.py +++ b/tests/test_service_info.py @@ -1,9 +1,8 @@ import pygobbler as pyg -_, staging, registry, url = pyg.start_gobbler() - def test_service_info(): + _, staging, registry, url = pyg.start_gobbler() payload = pyg.service_info(url) assert payload["staging"] == staging assert payload["registry"] == registry diff --git a/tests/test_upload_directory.py b/tests/test_upload_directory.py index cf3f1ce..159a5ac 100644 --- a/tests/test_upload_directory.py +++ b/tests/test_upload_directory.py @@ -1,24 +1,27 @@ import pygobbler as pyg import tempfile import os +import pytest -_, staging, registry, url = pyg.start_gobbler() -pyg.remove_project("test-upload", staging=staging, url=url) -pyg.remove_project("test-more-upload", staging=staging, url=url) -pyg.remove_project("test-upload-perms", staging=staging, url=url) -pyg.create_project("test-upload", staging=staging, url=url) -pyg.create_project("test-more-upload", staging=staging, url=url) -pyg.create_project("test-upload-perms", staging=staging, url=url) -tmp = tempfile.mkdtemp() -with open(os.path.join(tmp, "blah.txt"), "w") as f: - f.write("BAR") -os.mkdir(os.path.join(tmp, "foo")) -with open(os.path.join(tmp, "foo", "bar.txt"), "w") as f: - f.write("1 2 3 4 5 6 7 8 9 10") +@pytest.fixture(scope="module") +def setup(): + _, staging, registry, url = pyg.start_gobbler() + pyg.remove_project("test-upload", staging=staging, url=url) + pyg.remove_project("test-more-upload", staging=staging, url=url) + pyg.remove_project("test-upload-perms", staging=staging, url=url) + pyg.create_project("test-upload", staging=staging, url=url) + pyg.create_project("test-more-upload", staging=staging, url=url) + pyg.create_project("test-upload-perms", staging=staging, url=url) + + tmp = tempfile.mkdtemp() + with open(os.path.join(tmp, "blah.txt"), "w") as f: + f.write("BAR") + os.mkdir(os.path.join(tmp, "foo")) + with open(os.path.join(tmp, "foo", "bar.txt"), "w") as f: + f.write("1 2 3 4 5 6 7 8 9 10") -def test_upload_directory_simple(): pyg.upload_directory( project="test-upload", asset="jennifer", @@ -28,6 +31,12 @@ def test_upload_directory_simple(): url=url ) + return tmp + + +def test_upload_directory_simple(setup): + _, staging, registry, url = pyg.start_gobbler() + # Checking that the files were, in fact, correctly uploaded. man = pyg.fetch_manifest("test-upload", "jennifer", "1", registry=registry, url=url) assert sorted(man.keys()) == ["blah.txt", "foo/bar.txt"] @@ -39,7 +48,7 @@ def test_upload_directory_simple(): project="test-upload", asset="jennifer", version="2", - directory=tmp, + directory=setup, # i.e., the 'tmp' returned by the setup. staging=staging, url=url ) @@ -50,7 +59,9 @@ def test_upload_directory_simple(): assert "link" in v -def test_upload_directory_links(): +def test_upload_directory_links(setup): + _, staging, registry, url = pyg.start_gobbler() + dest = tempfile.mkdtemp() pyg.clone_version("test-upload", "jennifer", "2", dest, registry=registry) with open(os.path.join(dest, "whee"), "w") as f: @@ -72,7 +83,9 @@ def test_upload_directory_links(): assert "link" not in man["whee"] -def test_upload_directory_staging(): +def test_upload_directory_staging(setup): + _, staging, registry, url = pyg.start_gobbler() + dir = pyg.allocate_upload_directory(staging) with open(os.path.join(dir, "blah.txt"), "w") as f: f.write("A B C D E") diff --git a/tests/test_version_path.py b/tests/test_version_path.py index 463069a..9427ace 100644 --- a/tests/test_version_path.py +++ b/tests/test_version_path.py @@ -1,33 +1,42 @@ import pygobbler as pyg import tempfile import os +import pytest -_, staging, registry, url = pyg.start_gobbler() -pyg.remove_project("test", staging=staging, url=url) -pyg.create_project("test", staging=staging, url=url) -tmp = tempfile.mkdtemp() -with open(os.path.join(tmp, "blah.txt"), "w") as f: - f.write("BAR") -os.mkdir(os.path.join(tmp, "foo")) -with open(os.path.join(tmp, "foo", "bar.txt"), "w") as f: - f.write("1 2 3 4 5 6 7 8 9 10") +@pytest.fixture(scope="module") +def setup(): + _, staging, registry, url = pyg.start_gobbler() + pyg.remove_project("test", staging=staging, url=url) + pyg.create_project("test", staging=staging, url=url) -pyg.upload_directory( - project="test", - asset="serenity", - version="firefly", - directory=tmp, - staging=staging, - url=url -) + tmp = tempfile.mkdtemp() + with open(os.path.join(tmp, "blah.txt"), "w") as f: + f.write("BAR") + os.mkdir(os.path.join(tmp, "foo")) + with open(os.path.join(tmp, "foo", "bar.txt"), "w") as f: + f.write("1 2 3 4 5 6 7 8 9 10") + pyg.upload_directory( + project="test", + asset="serenity", + version="firefly", + directory=tmp, + staging=staging, + url=url + ) -def test_version_path(): + +def test_version_path(setup): + _, staging, registry, url = pyg.start_gobbler() out = pyg.version_path("test", "serenity", "firefly", registry=registry, url=url) assert out == os.path.join(registry, "test", "serenity", "firefly") + with open(os.path.join(out, "blah.txt"), "r") as handle: + assert handle.read() == "BAR" cache = tempfile.mkdtemp() out = pyg.version_path("test", "serenity", "firefly", registry=registry, url=url, cache=cache, force_remote=True) assert out.startswith(cache) assert out.endswith("test/serenity/firefly") + with open(os.path.join(out, "foo", "bar.txt"), "r") as handle: + assert handle.read() == "1 2 3 4 5 6 7 8 9 10"