def test_anonymous_doesnt_work(): args = MockArgs(project='1234') with pytest.raises(SystemExit) as e: remove(args) expected = 'remove a file you need to provide a username and password' assert expected in e.value.args[0]
def test_anonymous_doesnt_work(): args = MockArgs(project='1234') def simple_getenv(key): return None with pytest.raises(SystemExit) as e: with patch('osfclient.cli.os.getenv', side_effect=simple_getenv) as mock_getenv: remove(args) expected = 'remove a file you need to provide a username and password' assert expected in e.value.args[0]
def test_remove_file(OSF_project): args = MockArgs(project='1234', username='******', target='osfstorage/a/a/a') def simple_getenv(key): if key == 'OSF_PASSWORD': return 'secret' with patch('osfclient.cli.os.getenv', side_effect=simple_getenv): remove(args) OSF_project.assert_called_once_with('1234') MockProject = OSF_project.return_value MockStorage = MockProject._storage_mock.return_value for f in MockStorage.files: if f._path_mock.return_value == '/a/a/a': assert call.remove() in f.mock_calls
def test_wrong_storage_name(OSF_project): args = MockArgs(project='1234', username='******', target='DOESNTEXIST/a/a/a') def simple_getenv(key): if key == 'OSF_PASSWORD': return 'secret' with patch('osfclient.cli.os.getenv', side_effect=simple_getenv): remove(args) OSF_project.assert_called_once_with('1234') # the mock storage is called osfstorage, so we should not call remove() MockProject = OSF_project.return_value MockStorage = MockProject._storage_mock.return_value for f in MockStorage.files: if f._path_mock.return_value == '/a/a/a': assert call.remove() not in f.mock_calls
def test_non_existant_file(OSF_project): args = MockArgs(project='1234', username='******', target='osfstorage/DOESNTEXIST/a') def simple_getenv(key): if key == 'OSF_PASSWORD': return 'secret' with patch('osfclient.cli.os.getenv', side_effect=simple_getenv): remove(args) OSF_project.assert_called_once_with('1234') # check that all files in osfstorage are visited but non get deleted MockProject = OSF_project.return_value MockStorage = MockProject._storage_mock.return_value for f in MockStorage.files: assert f._path_mock.called assert call.remove() not in f.mock_calls