comparison Tests/Tests.py @ 12:15c166240dfb

cont
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 18 Jun 2015 14:33:01 +0200
parents c660a64ce2dd
children 7b69a561f4d3
comparison
equal deleted inserted replaced
11:c660a64ce2dd 12:15c166240dfb
377 self.assertEqual(1, DoGet(_REMOTE, '/patients/%s/protected' % a)) 377 self.assertEqual(1, DoGet(_REMOTE, '/patients/%s/protected' % a))
378 DoPut(_REMOTE, '/patients/%s/protected' % a, '0', 'text/plain') 378 DoPut(_REMOTE, '/patients/%s/protected' % a, '0', 'text/plain')
379 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a)) 379 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
380 380
381 381
382 def test_private_tags(self): 382 def test_raw_tags(self):
383 i = UploadInstance(_REMOTE, 'PrivateTags.dcm')['ID'] 383 i = UploadInstance(_REMOTE, 'PrivateTags.dcm')['ID']
384 384
385 dicom = DoGet(_REMOTE, '/instances/%s/file' % i) 385 dicom = DoGet(_REMOTE, '/instances/%s/file' % i)
386 self.assertEqual('1a7c56cb02d6e742cc9c856a8ac182e3', ComputeMD5(dicom)) 386 self.assertEqual('1a7c56cb02d6e742cc9c856a8ac182e3', ComputeMD5(dicom))
387 387
391 self.assertRaises(Exception, lambda: DoGet(_REMOTE, s + '0008-1011')) 391 self.assertRaises(Exception, lambda: DoGet(_REMOTE, s + '0008-1011'))
392 392
393 self.assertEqual('Abdomen', DoGet(_REMOTE, s + '7fe1-1001/0/7fe1-1008/0/7fe1-1057').strip()) 393 self.assertEqual('Abdomen', DoGet(_REMOTE, s + '7fe1-1001/0/7fe1-1008/0/7fe1-1057').strip())
394 self.assertEqual('cla_3c', DoGet(_REMOTE, s + '7fe1-1001/0/7fe1-1008/8/7fe1-1057').strip()) 394 self.assertEqual('cla_3c', DoGet(_REMOTE, s + '7fe1-1001/0/7fe1-1008/8/7fe1-1057').strip())
395 395
396
397 def test_sop_instance_uid(self):
398 UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-0001.dcm') 396 UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-0001.dcm')
399 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm') 397 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
400 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') 398 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
401 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') 399 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm')
402 400
742 # http://effbot.org/zone/pil-comparing-images.htm 740 # http://effbot.org/zone/pil-comparing-images.htm
743 truth = Image.open(os.path.join(os.path.dirname(__file__), '..', 'Database', 'ColorTestMalaterre.png')) 741 truth = Image.open(os.path.join(os.path.dirname(__file__), '..', 'Database', 'ColorTestMalaterre.png'))
744 self.assertTrue(ImageChops.difference(im, truth).getbbox() is None) 742 self.assertTrue(ImageChops.difference(im, truth).getbbox() is None)
745 743
746 744
745 def test_faking_ruby_put(self):
746 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
747 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
748 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
749 a = DoGet(_REMOTE, '/patients')[0]
750 b = DoGet(_REMOTE, '/patients')[1]
751 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
752 DoGet(_REMOTE, '/patients/%s/protected' % a, data = { '_method' : 'PUT' }, body = '0')
753 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
754 DoGet(_REMOTE, '/patients/%s/protected' % a, data = { '_method' : 'PUT' }, body = '1')
755 self.assertEqual(1, DoGet(_REMOTE, '/patients/%s/protected' % a))
756 DoGet(_REMOTE, '/patients/%s/protected' % a, data = { '_method' : 'PUT' }, body = '0')
757 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
758
759
760 def test_faking_ruby_delete(self):
761 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
762 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
763 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
764 a = DoGet(_REMOTE, '/patients')[0]
765 b = DoGet(_REMOTE, '/patients')[1]
766 DoGet(_REMOTE, '/patients/%s' % a, data = { '_method' : 'DELETE' })
767 self.assertEqual(1, len(DoGet(_REMOTE, '/patients')))
768 DoGet(_REMOTE, '/patients/%s' % b, data = { '_method' : 'DELETE' })
769 self.assertEqual(0, len(DoGet(_REMOTE, '/patients')))
770
771
772 def test_faking_google_put(self):
773 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
774 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
775 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
776 a = DoGet(_REMOTE, '/patients')[0]
777 b = DoGet(_REMOTE, '/patients')[1]
778 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
779 DoPost(_REMOTE, '/patients/%s/protected' % a, headers = { 'X-HTTP-Method-Override' : 'PUT' }, data = '0')
780 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
781 DoPost(_REMOTE, '/patients/%s/protected' % a, headers = { 'X-HTTP-Method-Override' : 'PUT' }, data = '1')
782 self.assertEqual(1, DoGet(_REMOTE, '/patients/%s/protected' % a))
783 DoPost(_REMOTE, '/patients/%s/protected' % a, headers = { 'X-HTTP-Method-Override' : 'PUT' }, data = '0')
784 self.assertEqual(0, DoGet(_REMOTE, '/patients/%s/protected' % a))
785
786
787 def test_faking_google_delete(self):
788 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
789 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
790 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
791 a = DoGet(_REMOTE, '/patients')[0]
792 b = DoGet(_REMOTE, '/patients')[1]
793 DoPost(_REMOTE, '/patients/%s' % a, headers = { 'X-HTTP-Method-Override' : 'DELETE' })
794 self.assertEqual(1, len(DoGet(_REMOTE, '/patients')))
795 DoPost(_REMOTE, '/patients/%s' % b, headers = { 'X-HTTP-Method-Override' : 'DELETE' })
796 self.assertEqual(0, len(DoGet(_REMOTE, '/patients')))
797
798
799 def test_lua(self):
800 self.assertEqual(42, DoPost(_REMOTE, '/tools/execute-script', 'print(42)'))
801 self.assertTrue(IsDefinedInLua(_REMOTE, 'PrintRecursive'))
802 self.assertFalse(IsDefinedInLua(_REMOTE, 'HelloWorld'))
803
804
805 def test_metadata(self):
806 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
807 p = DoGet(_REMOTE, '/patients')[0]
808 i = DoGet(_REMOTE, '/instances')[0]
809
810 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
811 self.assertEqual(1, len(m))
812 self.assertEqual('LastUpdate', m[0])
813
814 m = DoGet(_REMOTE, '/instances/%s/metadata' % i)
815 self.assertEqual(3, len(m))
816 self.assertTrue('IndexInSeries' in m)
817 self.assertTrue('ReceptionDate' in m)
818 self.assertTrue('RemoteAET' in m)
819
820 # Play with custom metadata
821 DoPut(_REMOTE, '/patients/%s/metadata/5555' % p, 'coucou')
822 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
823 self.assertEqual(2, len(m))
824 self.assertTrue('LastUpdate' in m)
825 self.assertTrue('5555' in m)
826 self.assertEqual('coucou', DoGet(_REMOTE, '/patients/%s/metadata/5555' % p))
827 DoPut(_REMOTE, '/patients/%s/metadata/5555' % p, 'hello')
828 self.assertEqual('hello', DoGet(_REMOTE, '/patients/%s/metadata/5555' % p))
829 DoDelete(_REMOTE, '/patients/%s/metadata/5555' % p)
830 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
831 self.assertEqual(1, len(m))
832 self.assertTrue('LastUpdate' in m)