From a65c7989c8c9507aa13a5f748c76dcc47bb36d84 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Thu, 4 Jun 2020 04:01:12 +0300 Subject: [PATCH] tests: don't cache gdrive url (#3941) This makes `GDrive.get_url` behaviour consistent with the rest of the test remotes. Related to #3916 --- tests/func/test_data_cloud.py | 35 +++++++++++++++-------------------- tests/remotes.py | 19 +++++++++++++++---- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/tests/func/test_data_cloud.py b/tests/func/test_data_cloud.py index b718003f8..9783fbd7a 100644 --- a/tests/func/test_data_cloud.py +++ b/tests/func/test_data_cloud.py @@ -189,26 +189,22 @@ class TestS3Remote(S3, TestDataCloudBase): return S3Remote -def setup_gdrive_cloud(remote_url, dvc): - config = copy.deepcopy(TEST_CONFIG) - config["remote"][TEST_REMOTE] = { - "url": remote_url, - "gdrive_service_account_email": "test", - "gdrive_service_account_p12_file_path": "test.p12", - "gdrive_use_service_account": True, - } - - dvc.config = config - remote = DataCloud(dvc).get_remote() - remote._gdrive_create_dir("root", remote.path_info.path) - - class TestGDriveRemote(GDrive, TestDataCloudBase): def _setup_cloud(self): self._ensure_should_run() - setup_gdrive_cloud(self.get_url(), self.dvc) + url = self.get_url() + self.create_dir(self.dvc, url) + config = copy.deepcopy(TEST_CONFIG) + config["remote"][TEST_REMOTE] = { + "url": url, + "gdrive_service_account_email": "test", + "gdrive_service_account_p12_file_path": "test.p12", + "gdrive_use_service_account": True, + } + + self.dvc.config = config self.cloud = DataCloud(self.dvc) remote = self.cloud.get_remote() self.assertIsInstance(remote, self._get_cloud_class()) @@ -421,12 +417,11 @@ class TestS3RemoteCLI(S3, TestDataCloudCLIBase): class TestGDriveRemoteCLI(GDrive, TestDataCloudCLIBase): - def _setup_cloud(self): - setup_gdrive_cloud(self.get_url(), self.dvc) - def _test(self): url = self.get_url() + self.create_dir(self.dvc, url) + self.main(["remote", "add", TEST_REMOTE, url]) self.main( [ @@ -434,7 +429,7 @@ class TestGDriveRemoteCLI(GDrive, TestDataCloudCLIBase): "modify", TEST_REMOTE, "gdrive_service_account_email", - "modified", + "test", ] ) self.main( @@ -443,7 +438,7 @@ class TestGDriveRemoteCLI(GDrive, TestDataCloudCLIBase): "modify", TEST_REMOTE, "gdrive_service_account_p12_file_path", - "modified.p12", + "test.p12", ] ) self.main( diff --git a/tests/remotes.py b/tests/remotes.py index 91d1edb11..d1a58531a 100644 --- a/tests/remotes.py +++ b/tests/remotes.py @@ -141,10 +141,21 @@ class GDrive: def should_test(): return os.getenv(GDriveRemote.GDRIVE_CREDENTIALS_DATA) is not None - def get_url(self): - if not getattr(self, "_remote_url", None): - self._remote_url = "gdrive://root/" + str(uuid.uuid4()) - return self._remote_url + @staticmethod + def create_dir(dvc, url): + config = { + "url": url, + "gdrive_service_account_email": "test", + "gdrive_service_account_p12_file_path": "test.p12", + "gdrive_use_service_account": True, + } + remote = GDriveRemote(dvc, config) + remote._gdrive_create_dir("root", remote.path_info.path) + + @staticmethod + def get_url(): + # NOTE: `get_url` should always return new random url + return "gdrive://root/" + str(uuid.uuid4()) class Azure: