comparison Tests/Tests.py @ 34:1047d7bc5210

test limit and since arguments while retrieving DICOM resources in the REST API
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 10 Aug 2015 10:02:18 +0200
parents 156c7ae164b5
children 42ad759ef40a
comparison
equal deleted inserted replaced
33:eb6d219af210 34:1047d7bc5210
2048 DoPost(_REMOTE, '/tools/execute-script', 'aet = nill', 'application/lua') 2048 DoPost(_REMOTE, '/tools/execute-script', 'aet = nill', 'application/lua')
2049 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0002.dcm') 2049 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0002.dcm')
2050 WaitEmpty(_REMOTE) 2050 WaitEmpty(_REMOTE)
2051 self.assertEqual(2, len(DoGet(_LOCAL, '/instances'))) 2051 self.assertEqual(2, len(DoGet(_LOCAL, '/instances')))
2052 self.assertEqual('ORTHANC', DoGet(_LOCAL, '/instances/%s/metadata/RemoteAET' % b['ID'])) 2052 self.assertEqual('ORTHANC', DoGet(_LOCAL, '/instances/%s/metadata/RemoteAET' % b['ID']))
2053
2054 def test_resources_since_limit(self):
2055 # Upload 16 instances
2056 for i in range(4):
2057 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1))
2058 UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-000%d.dcm' % (i + 1))
2059 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-000%d.dcm' % (i + 1))
2060 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-000%d.dcm' % (i + 1))
2061
2062 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
2063 self.assertEqual(2, len(DoGet(_REMOTE, '/studies')))
2064 self.assertEqual(4, len(DoGet(_REMOTE, '/series')))
2065 self.assertEqual(16, len(DoGet(_REMOTE, '/instances')))
2066
2067 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/patients&since=10' % i))
2068 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/patients&limit=10' % i))
2069
2070 self.assertEqual(0, len(DoGet(_REMOTE, '/patients?since=0&limit=0')))
2071 self.assertEqual(2, len(DoGet(_REMOTE, '/patients?since=0&limit=100')))
2072 self.assertEqual(2, len(DoGet(_REMOTE, '/studies?since=0&limit=100')))
2073 self.assertEqual(4, len(DoGet(_REMOTE, '/series?since=0&limit=100')))
2074 self.assertEqual(16, len(DoGet(_REMOTE, '/instances?since=0&limit=100')))
2075 self.assertEqual(1, len(DoGet(_REMOTE, '/patients?since=1&limit=100')))
2076 self.assertEqual(0, len(DoGet(_REMOTE, '/patients?since=2&limit=100')))
2077 self.assertEqual(0, len(DoGet(_REMOTE, '/patients?since=3&limit=100')))
2078 self.assertEqual(1, len(DoGet(_REMOTE, '/studies?since=1&limit=100')))
2079 self.assertEqual(3, len(DoGet(_REMOTE, '/series?since=1&limit=100')))
2080 self.assertEqual(2, len(DoGet(_REMOTE, '/series?since=2&limit=100')))
2081 self.assertEqual(1, len(DoGet(_REMOTE, '/series?since=3&limit=100')))
2082 self.assertEqual(0, len(DoGet(_REMOTE, '/series?since=4&limit=100')))
2083 self.assertEqual(0, len(DoGet(_REMOTE, '/series?since=100&limit=100')))
2084 self.assertEqual(15, len(DoGet(_REMOTE, '/instances?since=1&limit=100')))
2085
2086 for limit in [ 1, 2, 3, 7, 16, 17 ]:
2087 s = {}
2088 since = 0
2089 while True:
2090 t = DoGet(_REMOTE, '/instances?since=%d&limit=%d' % (since, limit))
2091 if len(t) == 0:
2092 break
2093
2094 since += len(t)
2095 for i in t:
2096 s[i] = None
2097
2098 self.assertEqual(16, len(s))
2099 for instance in DoGet(_REMOTE, '/instances'):
2100 self.assertTrue(instance in s)