def test_serialise_invalid_version(gitlab_api): runner = Runner.register("https://gitlab.cern.ch", gitlab_api.token) job = runner.request_job() serialised_job = json.loads(job.dumps()) serialised_job[0] = 2 as_string = json.dumps(serialised_job) with pytest.raises(ValueError): Job.loads(as_string) with tempfile.NamedTemporaryFile(mode="wt") as fp: json.dump(as_string, fp) fp.flush() with pytest.raises(ValueError): Job.load(fp.name) # Check the API's internal state assert len(gitlab_api.pending_jobs) == 1 assert len(gitlab_api.running_jobs) == 1 assert len(gitlab_api.completed_jobs) == 0
def test_repr(gitlab_api): runner = Runner.register("https://gitlab.cern.ch", gitlab_api.token) print(repr(runner)) assert runner.token in repr(runner)
def test_set_failed_with_artifacts(gitlab_api): runner = Runner.register("https://gitlab.cern.ch", gitlab_api.token) job = runner.request_job() job.set_failed(artifacts=[])
def test_invalid_executor(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, executor=[])
def test_equality(gitlab_api): runner_1 = Runner.register("https://gitlab.cern.ch", gitlab_api.token) runner_2 = Runner.register("https://gitlab.cern.ch", gitlab_api.token) assert runner_1 == runner_1 assert runner_2 == runner_2 assert runner_1 != runner_2
def test_invalid_platform(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, platform=[])
def test_invalid_architecture(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, architecture=[])
def test_invalid_maximum_timeout(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, maximum_timeout="100")
def test_invalid_revision(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, revision=1)
def test_invalid_run_untagged(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, run_untagged="True")
def test_register_without_parameters(gitlab_api): runner = Runner.register("https://gitlab.cern.ch", gitlab_api.token) check_runner(gitlab_api, runner)
def test_invalid_active(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, active="True")
def test_invalid_description(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", gitlab_api.token, description=[])
def test_invalid_token(gitlab_api): with pytest.raises(ValueError): Runner.register("https://gitlab.cern.ch", 500) with pytest.raises(AuthException): Runner.register("https://gitlab.cern.ch", "invalid_token")
def test_bad_init(gitlab_api): with pytest.raises(AuthException): Runner("https://gitlab.cern.ch", 1, "invalid_token", {})
def test_token(gitlab_api): runner = Runner.register("https://gitlab.cern.ch", gitlab_api.token) job = runner.request_job() assert job.token == gitlab_api.running_jobs[0].token