comparison Tests/Tests.py @ 15:2e5dbbbe3889

cont
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 18 Jun 2015 18:01:24 +0200
parents ed9a9fe66002
children 7c8500991a12
comparison
equal deleted inserted replaced
14:ed9a9fe66002 15:2e5dbbbe3889
46 result.append('') 46 result.append('')
47 else: 47 else:
48 result.append(match.group(1)) 48 result.append(match.group(1))
49 49
50 return result 50 return result
51
52
53 def InstallLuaScript(path):
54 with open(GetDatabasePath(path), 'r') as f:
55 DoPost(_REMOTE, '/tools/execute-script', f.read(), 'application/lua')
56
57
58 def UninstallLuaCallbacks():
59 DoPost(_REMOTE, '/tools/execute-script', 'function OnStoredInstance() end', 'application/lua')
60
51 61
52 62
53 class Orthanc(unittest.TestCase): 63 class Orthanc(unittest.TestCase):
54 def setUp(self): 64 def setUp(self):
55 DropOrthanc(_LOCAL) 65 DropOrthanc(_LOCAL)
1654 1664
1655 DropOrthanc(_REMOTE) 1665 DropOrthanc(_REMOTE)
1656 a = DoPost(_REMOTE, '/tools/lookup', '3113719P') 1666 a = DoPost(_REMOTE, '/tools/lookup', '3113719P')
1657 self.assertEqual(0, len(a)) 1667 self.assertEqual(0, len(a))
1658 1668
1669
1670 def test_autorouting(self):
1671 knee1 = 'Knee/T1/IM-0001-0001.dcm'
1672 knee2 = 'Knee/T2/IM-0001-0002.dcm'
1673 other = 'Brainix/Flair/IM-0001-0001.dcm'
1674
1675 # Check that this version is >= 0.8.0
1676 self.assertTrue(IsDefinedInLua(_REMOTE, '_InitializeJob'))
1677 self.assertTrue('orthanctest' in DoGet(_REMOTE, '/modalities'))
1678
1679 UploadInstance(_REMOTE, knee1)
1680 self.assertEqual(0, len(DoGet(_LOCAL, '/instances')))
1681
1682 DropOrthanc(_REMOTE)
1683 DropOrthanc(_LOCAL)
1684 InstallLuaScript('Lua/Autorouting.lua')
1685 UploadInstance(_REMOTE, knee1)
1686 UploadInstance(_REMOTE, knee2)
1687 UploadInstance(_REMOTE, other)
1688 WaitEmpty(_REMOTE)
1689 UninstallLuaCallbacks()
1690 self.assertEqual(3, len(DoGet(_LOCAL, '/instances')))
1691
1692 DropOrthanc(_REMOTE)
1693 DropOrthanc(_LOCAL)
1694 InstallLuaScript('Lua/AutoroutingConditional.lua')
1695 UploadInstance(_REMOTE, knee1)
1696 UploadInstance(_REMOTE, knee2)
1697 UploadInstance(_REMOTE, other)
1698 WaitEmpty(_REMOTE)
1699 UninstallLuaCallbacks()
1700 self.assertEqual(2, len(DoGet(_LOCAL, '/instances')))
1701
1702 DropOrthanc(_REMOTE)
1703 DropOrthanc(_LOCAL)
1704 InstallLuaScript('Lua/AutoroutingModification.lua')
1705 UploadInstance(_REMOTE, knee1)
1706 WaitEmpty(_REMOTE)
1707 UninstallLuaCallbacks()
1708 i = DoGet(_LOCAL, '/instances')
1709 self.assertEqual(1, len(i))
1710
1711 with tempfile.NamedTemporaryFile(delete = True) as f:
1712 f.write(DoGet(_LOCAL, '/instances/%s/file' % i[0]))
1713 f.flush()
1714 routed = subprocess.check_output([ 'dcm2xml', f.name ])
1715 self.assertEqual('My Medical Device', re.search('"StationName">(.*?)<', routed).group(1).strip())
1716 self.assertEqual(None, re.search('"MilitaryRank"', routed))
1717 self.assertEqual(None, re.search('"0051,0010"', routed)) # A private tag