def test_upstream_ids (self): s = Session() job = Job("res1.1") job.account = Project("-1") s.add(job) stdout, stderr = capture(lambda: print_jobs_list([job])) assert_equal_multiline(stdout.getvalue(), dedent("""\ res1.1 -1 0.0 """))
def test_blank (self): stdout, stderr = capture(lambda: print_jobs_list([])) assert_equal_multiline(stdout.getvalue(), dedent("""\ """)) assert_equal_multiline(stderr.getvalue(), dedent("""\ ID Name User Account Duration Charged ------------------- ---------- -------- --------------- --------- ------------- --------- ------------- 0:00:00 0.0 Units are undefined. """))
def test_long_job (self): s = Session() job = Job("res1.1") job.start = datetime(2000, 1, 1) job.end = datetime(2000, 2, 1) s.add(job) stdout, stderr = capture(lambda: print_jobs_list([job])) assert_equal_multiline(stdout.getvalue(), dedent("""\ res1.1 744:00:00 0.0 """)) assert_equal_multiline(stderr.getvalue(), dedent("""\ ID Name User Account Duration Charged ------------------- ---------- -------- --------------- --------- ------------- --------- ------------- 744:00:00 0.0 Units are undefined. """))
def test_bare_jobs (self): s = Session() jobs = [Job("res1.1"), Job("res1.2"), Job("res1.3")] for job in jobs: s.add(job) stdout, stderr = capture(lambda: print_jobs_list(jobs)) assert_equal_multiline(stdout.getvalue(), dedent("""\ res1.1 0.0 res1.2 0.0 res1.3 0.0 """)) assert_equal_multiline(stderr.getvalue(), dedent("""\ ID Name User Account Duration Charged ------------------- ---------- -------- --------------- --------- ------------- --------- ------------- 0:00:00 0.0 Units are undefined. """))
def test_full_jobs (self): s = Session() project1 = Project("1") project2 = Project("2") user1 = User("1") user2 = User("2") res1 = Resource("1") a = Allocation(project1, res1, 0, datetime(2000, 1, 1), datetime(2001, 1, 1)) j1 = Job("res1.1") j2 = Job("res1.2") j3 = Job("res1.3") j2.user = user1 j3.user = user2 j1.account = project1 j3.account = project2 j1.name = "somename" j1.charges = [Charge(a, 10), Charge(a, 20)] j1.charges[1].refund(5) j1.start = datetime(2000, 1, 1) j2.start = datetime(2000, 1, 2) j1.end = j1.start + timedelta(minutes=30) for job in [j1, j2, j3]: s.add(job) stdout, stderr = capture(lambda: print_jobs_list([j1, j2, j3])) assert_equal_multiline(stdout.getvalue(), dedent("""\ res1.1 somename project1 0:30:00 25.0 res1.2 user1 0.0 res1.3 user2 project2 0.0 """)) assert_equal_multiline(stderr.getvalue(), dedent("""\ ID Name User Account Duration Charged ------------------- ---------- -------- --------------- --------- ------------- --------- ------------- 0:30:00 25.0 Units are undefined. """))