예제 #1
0
def test_create_job_login_required():
    with requests_mock.mock() as m:
        m.post("https://databasin.org/api/v1/jobs/", status_code=401)

        c = Client()
        with pytest.raises(LoginRequiredError):
            c.create_job("foo_job")
예제 #2
0
def test_create_job_login_required():
    with requests_mock.mock() as m:
        m.post('https://databasin.org/api/v1/jobs/', status_code=401)

        c = Client()
        with pytest.raises(LoginRequiredError):
            c.create_job('foo_job')
예제 #3
0
def test_create_job_forbidden():
    with requests_mock.mock() as m:
        m.post("https://databasin.org/api/v1/jobs/", status_code=401)

        c = Client()
        c.username = "******"
        with pytest.raises(ForbiddenError):
            c.create_job("foo_job")
예제 #4
0
def test_create_job_forbidden():
    with requests_mock.mock() as m:
        m.post('https://databasin.org/api/v1/jobs/', status_code=401)

        c = Client()
        c.username = '******'
        with pytest.raises(ForbiddenError):
            c.create_job('foo_job')
예제 #5
0
def test_job_block(job_data):
    job_data_2 = copy.copy(job_data)
    job_data_2["status"] = "succeeded"

    with requests_mock.mock() as m:
        m.post(
            "https://databasin.org/api/v1/jobs/",
            headers={"Location": "https://databasin.org/api/v1/jobs/1234/"},
            status_code=201,
        )
        m.get(
            "https://databasin.org/api/v1/jobs/1234/",
            [
                {"text": json.dumps(job_data)},
                {"text": json.dumps(job_data)},
                {"text": json.dumps(job_data)},
                {"text": json.dumps(job_data_2)},
            ],
        )

        with mock.patch("time.sleep", mock.Mock()) as time_mock:
            # Make sure the test actually stops if things don't work as planned
            time_mock.side_effect = [None, None, None, IOError]

            c = Client()
            job = c.create_job("foo", block=True)

            assert m.call_count == 5
            assert job.status == "succeeded"
            assert time_mock.call_count == 3
예제 #6
0
def test_job_block(job_data):
    job_data_2 = copy.copy(job_data)
    job_data_2['status'] = 'succeeded'

    with requests_mock.mock() as m:
        m.post('https://databasin.org/api/v1/jobs/',
               headers={'Location': 'https://databasin.org/api/v1/jobs/1234/'},
               status_code=201)
        m.get('https://databasin.org/api/v1/jobs/1234/',
              [{
                  'text': json.dumps(job_data)
              }, {
                  'text': json.dumps(job_data)
              }, {
                  'text': json.dumps(job_data)
              }, {
                  'text': json.dumps(job_data_2)
              }])

        with mock.patch('time.sleep', mock.Mock()) as time_mock:
            # Make sure the test actually stops if things don't work as planned
            time_mock.side_effect = [None, None, None, IOError]

            c = Client()
            job = c.create_job('foo', block=True)

            assert m.call_count == 5
            assert job.status == 'succeeded'
            assert time_mock.call_count == 3
예제 #7
0
def test_create_job(job_data):
    with requests_mock.mock() as m:
        m.post('https://databasin.org/api/v1/jobs/',
               headers={'Location': 'https://databasin.org/api/v1/jobs/1234/'},
               status_code=201)
        m.get('https://databasin.org/api/v1/jobs/1234/',
              text=json.dumps(job_data))

        c = Client()
        job = c.create_job('foo_job', job_args={'foo': 'bar'})

        assert job.id == '1234'
        assert m.call_count == 2
        request_data = json.loads(m.request_history[0].text)
        assert request_data['job_name'] == 'foo_job'
        assert request_data['job_args'] == {'foo': 'bar'}
예제 #8
0
def test_create_job(job_data):
    with requests_mock.mock() as m:
        m.post(
            "https://databasin.org/api/v1/jobs/",
            headers={"Location": "https://databasin.org/api/v1/jobs/1234/"},
            status_code=201,
        )
        m.get("https://databasin.org/api/v1/jobs/1234/", text=json.dumps(job_data))

        c = Client()
        job = c.create_job("foo_job", job_args={"foo": "bar"})

        assert job.id == "1234"
        assert m.call_count == 2
        request_data = json.loads(m.request_history[0].text)
        assert request_data["job_name"] == "foo_job"
        assert request_data["job_args"] == {"foo": "bar"}