示例#1
0
def test_workq_pickle(wq):
    wq.pushjob(jobs.job("render1"))
    wq.pushjob(jobs.job("render2"))
    w2 = loaddump(wq)
    print wq.__dict__
    print w2.__dict__
    assert wq.__dict__ == w2.__dict__
示例#2
0
def test_handletimeouts_unless_done(wq, faketime):
    j1 = jobs.job("render", timeout=10)
    j2 = jobs.job("render", timeout=9)

    wq.pushjob(j1)
    wq.pushjob(j2)

    wq._mark_finished(j2)
    faketime += 11
    wq.handletimeouts()
    assert not wq.timeoutq

    assert j1.error == "timeout"
    assert j2.error is None
示例#3
0
def test_handletimeouts(wq, faketime):
    j1 = jobs.job("render", timeout=10)
    j2 = jobs.job("render", timeout=9)

    wq.pushjob(j1)
    wq.pushjob(j2)
    assert wq.timeoutq[0][1] is j2

    faketime += 9.5
    wq.handletimeouts()

    assert not j1.done
    assert j2.done
    assert j2.error == "timeout"
示例#4
0
def test_job_unpickle_event():
    j = jobs.job("render")
    j = loaddump(j)
    assert not j.finish_event.is_set()

    j.done = True
    j = loaddump(j)
    assert j.finish_event.is_set()
示例#5
0
def test_pushjob_pop(wq, spawn):
    j1 = jobs.job("render", payload="hello")
    jid = wq.pushjob(j1)
    assert jid == 1
    assert j1.jobid == 1
    assert len(wq.channel2q["render"]) == 1
    assert len(wq.timeoutq) == 1

    j = wq.pop(["foo", "render", "bar"])
    assert j is j1

    g1 = spawn(wq.pop, ["render"])
    sleep(0)

    j2 = jobs.job("render", payload=" world")
    wq.pushjob(j2)
    g1.join()
    res = g1.get()
    assert res is j2
示例#6
0
def test_job_pickle():
    j1 = jobs.job("render", payload=(1, 2, 3), priority=5, jobid=11, timeout=100, ttl=20)
    j2 = loaddump(j1)

    assert j2.channel == "render"
    assert j2.payload == (1, 2, 3)
    assert j2.priority == 5
    assert j2.jobid == 11
    assert j2.timeout == j1.timeout
    assert j2.ttl == 20
    assert j2.done == False
示例#7
0
def test_updatejob(wq):
    j = jobs.job("render")
    wq.pushjob(j)
    jid = j.jobid
    assert j.info == dict()

    wq.updatejob(jid, dict(bar=5))
    assert j.info == dict(bar=5)

    wq.updatejob(jid, dict(foo=7))
    assert j.info == dict(foo=7, bar=5)
示例#8
0
def test_pop_does_preen(wq):
    jlist = [jobs.job("render", payload=i) for i in range(10)]
    for j in jlist:
        wq.pushjob(j)

    for j in jlist[:-1]:
        wq._mark_finished(j, killed=True)

    print wq.__dict__
    j = wq.pop(["render"])
    print j, jlist
    assert j is jlist[-1]
示例#9
0
def test_handletimeouts_with_client_waiting(wq, faketime, spawn):
    spawn(wq.pop, ["render"])
    sleep(0.0)
    j = jobs.job("render", timeout=9.5)
    wq.pushjob(j)
    assert len(wq.timeoutq) == 1
    assert wq.timeoutq[0][1] is j

    faketime += 10
    wq.handletimeouts()

    assert j.done
    assert j.error == "timeout"
示例#10
0
def test_job_repr_int():
    repr(jobs.job("render", jobid=41))
示例#11
0
def test_job_repr_none():
    repr(jobs.job("render"))
示例#12
0
def test_job_repr_unicode():
    r = repr(jobs.job("render", jobid=unichr(256)))
    assert isinstance(r, str)
示例#13
0
def test_job_defaults():
    now = time.time()
    j1 = jobs.job("render")
    assert j1.ttl == 3600
    assert j1.priority == 0
    assert j1.timeout >= now + 120
示例#14
0
def test_pushjob_no_automatic_jobid(wq):
    for jobid in ["", "123", unichr(255), 0]:
        j = jobs.job("render", payload="hello", jobid=jobid)
        jid = wq.pushjob(j)
        assert (jid, j.jobid) == (jobid, jobid)
示例#15
0
def test_job_json():
    jobs.job("render", jobid=unichr(256))._json()
示例#16
0
 def mark_finished(**kw):
     j = jobs.job("render")
     wq.pushjob(j)
     wq._mark_finished(j, **kw)
     return j
示例#17
0
def test_pushjob_automatic_jobid(wq):
    for x in range(1, 10):
        j = jobs.job("render", payload="hello")
        jid = wq.pushjob(j)
        assert (jid, j.jobid) == (x, x)