# HG changeset patch # User Sebastien Jodogne # Date 1527191020 -7200 # Node ID 412d5f70447ec318d279c55408acd8c1d357d3d4 # Parent 5634ef96fcc520eaa7cdbe13c5a78d650edb8629 testing asynchronous c-move diff -r 5634ef96fcc5 -r 412d5f70447e Tests/Tests.py --- a/Tests/Tests.py Wed May 23 10:07:39 2018 +0200 +++ b/Tests/Tests.py Thu May 24 21:43:40 2018 +0200 @@ -1123,11 +1123,21 @@ def test_incoming_movescu(self): UploadInstance(_REMOTE, 'Multiframe.dcm') - + + # No matching patient, so no job is created + self.assertEqual(0, len(DoGet(_LOCAL, '/patients'))) + CallMoveScu([ '--patient', '-k', '0008,0052=PATIENT', '-k', 'PatientID=none' ]) self.assertEqual(0, len(DoGet(_LOCAL, '/patients'))) - CallMoveScu([ '--patient', '-k', '0008,0052=PATIENT', '-k', 'PatientID=none' ]) - self.assertEqual(0, len(DoGet(_LOCAL, '/patients'))) + + # 1 Matching patient, track the job + a = set(DoGet(_REMOTE, '/jobs')) CallMoveScu([ '--patient', '-k', '0008,0052=PATIENT', '-k', 'PatientID=12345678' ]) + b = set(DoGet(_REMOTE, '/jobs')) + + diff = list(b - a) + self.assertEqual(1, len(diff)) + self.assertTrue(WaitJobDone(_REMOTE, diff[0])) + self.assertEqual(1, len(DoGet(_LOCAL, '/patients'))) @@ -2617,12 +2627,22 @@ def test_incoming_movescu_accession(self): UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') + # No matching patient, so no job is created self.assertEqual(0, len(DoGet(_LOCAL, '/patients'))) CallMoveScu([ '--study', '-k', '0008,0052=STUDY', '-k', 'AccessionNumber=nope' ]) self.assertEqual(0, len(DoGet(_LOCAL, '/patients'))) CallMoveScu([ '--study', '-k', '0008,0052=PATIENT', '-k', 'AccessionNumber=A10003245599' ]) self.assertEqual(0, len(DoGet(_LOCAL, '/patients'))) + + # 1 Matching patient, track the job + a = set(DoGet(_REMOTE, '/jobs')) CallMoveScu([ '--study', '-k', '0008,0052=STUDY', '-k', 'AccessionNumber=A10003245599' ]) + b = set(DoGet(_REMOTE, '/jobs')) + + diff = list(b - a) + self.assertEqual(1, len(diff)) + self.assertTrue(WaitJobDone(_REMOTE, diff[0])) + self.assertEqual(1, len(DoGet(_LOCAL, '/patients'))) diff -r 5634ef96fcc5 -r 412d5f70447e Tests/Toolbox.py --- a/Tests/Toolbox.py Wed May 23 10:07:39 2018 +0200 +++ b/Tests/Toolbox.py Thu May 24 21:43:40 2018 +0200 @@ -212,6 +212,17 @@ return time.sleep(0.1) +def WaitJobDone(orthanc, job): + while True: + s = DoGet(orthanc, '/jobs/%s' % job) ['State'] + + if s == 'Success': + return True + elif s == 'Failure': + return False + + time.sleep(0.1) + def GetDockerHostAddress(): route = subprocess.check_output([ '/sbin/ip', 'route' ]) m = re.search(r'default via ([0-9.]+)', route)