Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 677:599ff47f609d large-queries
updated extended /changes tests
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Thu, 05 Sep 2024 18:46:25 +0200 |
parents | 5806bd442a37 |
children | 72f186c739d0 |
comparison
equal
deleted
inserted
replaced
650:c76a8c783996 | 677:599ff47f609d |
---|---|
625 self.assertEqual(2, countSeries) | 625 self.assertEqual(2, countSeries) |
626 self.assertEqual(0, completed) | 626 self.assertEqual(0, completed) |
627 | 627 |
628 | 628 |
629 def test_changes_extended(self): | 629 def test_changes_extended(self): |
630 if IsOrthancVersionAbove(_REMOTE, 1, 13, 0) and DoGet(_REMOTE, '/system').get("HasExtendedApiV1"): | 630 if IsOrthancVersionAbove(_REMOTE, 1, 12, 5) and DoGet(_REMOTE, '/system').get("Capabilities").get("HasExtendedChanges"): |
631 # Check emptiness | 631 # Check emptiness |
632 c = DoGet(_REMOTE, '/extended-api-v1/changes') | 632 c = DoGet(_REMOTE, '/changes') |
633 self.assertEqual(0, len(c['Changes'])) | 633 self.assertEqual(0, len(c['Changes'])) |
634 #self.assertEqual(0, c['Last']) # Not true anymore for Orthanc >= 1.5.2 | 634 #self.assertEqual(0, c['Last']) # Not true anymore for Orthanc >= 1.5.2 |
635 self.assertTrue(c['Done']) | 635 self.assertTrue(c['Done']) |
636 c = DoGet(_REMOTE, '/extended-api-v1/changes?last') | 636 c = DoGet(_REMOTE, '/changes?last') |
637 self.assertEqual(0, len(c['Changes'])) | 637 self.assertEqual(0, len(c['Changes'])) |
638 #self.assertEqual(0, c['Last']) # Not true anymore for Orthanc >= 1.5.2 | 638 #self.assertEqual(0, c['Last']) # Not true anymore for Orthanc >= 1.5.2 |
639 self.assertTrue(c['Done']) | 639 self.assertTrue(c['Done']) |
640 | 640 |
641 # Add 1 instance | 641 # Add 1 instance |
642 i = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] | 642 i = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] |
643 c = DoGet(_REMOTE, '/extended-api-v1/changes') | 643 c = DoGet(_REMOTE, '/changes') |
644 begin = c['Last'] | 644 begin = c['Last'] |
645 self.assertEqual(4, len(c['Changes'])) | 645 self.assertEqual(4, len(c['Changes'])) |
646 self.assertTrue(c['Done']) | 646 self.assertTrue(c['Done']) |
647 self.assertEqual(c['Changes'][-1]['Seq'], c['Last']) | 647 self.assertEqual(c['Changes'][-1]['Seq'], c['Last']) |
648 | 648 |
650 self.assertEqual(c['Changes'][0]['ChangeType'], 'NewInstance') | 650 self.assertEqual(c['Changes'][0]['ChangeType'], 'NewInstance') |
651 self.assertEqual(c['Changes'][1]['ChangeType'], 'NewSeries') | 651 self.assertEqual(c['Changes'][1]['ChangeType'], 'NewSeries') |
652 self.assertEqual(c['Changes'][2]['ChangeType'], 'NewStudy') | 652 self.assertEqual(c['Changes'][2]['ChangeType'], 'NewStudy') |
653 self.assertEqual(c['Changes'][3]['ChangeType'], 'NewPatient') | 653 self.assertEqual(c['Changes'][3]['ChangeType'], 'NewPatient') |
654 | 654 |
655 c = DoGet(_REMOTE, '/extended-api-v1/changes?type=NewInstance') | 655 c = DoGet(_REMOTE, '/changes?type=NewInstance') |
656 self.assertEqual(1, len(c['Changes'])) | 656 self.assertEqual(1, len(c['Changes'])) |
657 self.assertEqual(begin-3, c['Last']) | 657 self.assertEqual(begin-3, c['Last']) |
658 | 658 |
659 c = DoGet(_REMOTE, '/extended-api-v1/changes?type=NewPatient') | 659 c = DoGet(_REMOTE, '/changes?type=NewPatient') |
660 self.assertEqual(1, len(c['Changes'])) | 660 self.assertEqual(1, len(c['Changes'])) |
661 self.assertEqual(begin, c['Last']) | 661 self.assertEqual(begin, c['Last']) |
662 | 662 |
663 UploadFolder(_REMOTE, 'Knee/T1') | 663 UploadFolder(_REMOTE, 'Knee/T1') |
664 UploadFolder(_REMOTE, 'Knee/T2') | 664 UploadFolder(_REMOTE, 'Knee/T2') |
665 | 665 |
666 # 1000 New Instance changes -> all 50 shall be reported | 666 # Request the 1000 first NewInstance changes -> all 50 shall be reported |
667 c = DoGet(_REMOTE, '/extended-api-v1/changes', { 'type': 'NewInstance', 'since' : begin, 'limit' : 1000 }) | 667 c = DoGet(_REMOTE, '/changes', { 'type': 'NewInstance', 'since' : begin, 'limit' : 1000 }) |
668 self.assertEqual(50, len(c['Changes'])) | 668 self.assertEqual(50, len(c['Changes'])) |
669 self.assertLess(begin, c['Changes'][0]['Seq']) | 669 self.assertLess(begin, c['Changes'][0]['Seq']) |
670 self.assertTrue(c['Done']) | 670 self.assertTrue(c['Done']) #w e have got them all so it's DONE |
671 lastFromAll = c['Last'] | 671 lastFrom1000NewInstances = c['Last'] |
672 | 672 firstFrom1000NewInstances = c['First'] |
673 # Only 10 New Instance changes -> only 10 shall be reported | 673 self.assertLess(firstFrom1000NewInstances, lastFrom1000NewInstances) |
674 c = DoGet(_REMOTE, '/extended-api-v1/changes', { 'type': 'NewInstance', 'since' : begin, 'limit' : 10 }) | 674 |
675 # Only the 10 first NewInstance changes -> only 10 shall be reported | |
676 c = DoGet(_REMOTE, '/changes', { 'type': 'NewInstance', 'since' : begin, 'limit' : 10 }) | |
675 self.assertEqual(10, len(c['Changes'])) | 677 self.assertEqual(10, len(c['Changes'])) |
676 self.assertFalse(c['Done']) | 678 self.assertFalse(c['Done']) |
677 lastFrom10 = c['Last'] | 679 lastFrom10firstNewInstances = c['Last'] |
678 self.assertLess(lastFrom10, lastFromAll) | 680 firstFrom10firstNewInstances = c['First'] |
681 self.assertLess(firstFrom10firstNewInstances, lastFrom10firstNewInstances) | |
682 self.assertLess(lastFrom10firstNewInstances, lastFrom1000NewInstances) | |
683 self.assertEqual(firstFrom10firstNewInstances, firstFrom1000NewInstances) | |
679 | 684 |
680 # between begin and begin+10 with a max of 10 and a filter -> less than 10 NewInstance since there are other changes in this range | 685 # between begin and begin+10 with a max of 10 and a filter -> less than 10 NewInstance since there are other changes in this range |
681 c = DoGet(_REMOTE, '/extended-api-v1/changes', { 'type': 'NewInstance', 'since' : begin, 'to': begin+10, 'limit' : 10 }) | 686 c = DoGet(_REMOTE, '/changes', { 'type': 'NewInstance', 'since' : begin, 'to': begin+10, 'limit' : 10 }) |
682 self.assertLess(len(c['Changes']), 10) | 687 self.assertLess(len(c['Changes']), 10) |
683 self.assertTrue(c['Done']) # we have received ALL NewInstance that are between since and to so we consider it's done | 688 self.assertTrue(c['Done']) # we have received ALL NewInstance that are between since and to so we consider it's done |
684 lastFrom10 = c['Last'] | 689 lastFrom10SubsetNewInstances = c['Last'] |
685 self.assertLess(lastFrom10, lastFromAll) | 690 firstFrom10SubsetNewInstances = c['First'] |
686 | 691 self.assertLess(firstFrom10SubsetNewInstances, lastFrom10SubsetNewInstances) |
687 # test with only 'to' -> all 50 shall be reported | 692 self.assertLess(lastFrom10SubsetNewInstances, lastFrom10firstNewInstances) |
688 c = DoGet(_REMOTE, '/extended-api-v1/changes', { 'type': 'NewInstance', 'to': lastFromAll, 'limit' : 50 }) | 693 self.assertEqual(firstFrom10SubsetNewInstances, firstFrom1000NewInstances) |
689 self.assertEqual(lastFromAll, c['Changes'][-1]['Seq']) | 694 |
695 # test with only 'to' -> all 50 NewInstance shall be reported | |
696 c = DoGet(_REMOTE, '/changes', { 'type': 'NewInstance', 'to': lastFrom1000NewInstances, 'limit' : 50 }) | |
697 self.assertEqual(lastFrom1000NewInstances, c['Changes'][-1]['Seq']) | |
690 self.assertEqual(50, len(c['Changes'])) | 698 self.assertEqual(50, len(c['Changes'])) |
691 self.assertFalse(c['Done']) | 699 self.assertFalse(c['Done']) # Done can not be used when working in reverse direction |
692 lastFromTo = c['Last'] | 700 lastFrom50Reverse = c['Last'] |
693 self.assertLess(lastFrom10, lastFromTo) | 701 firstFrom50Reverse = c['First'] |
702 self.assertLess(firstFrom50Reverse, lastFrom50Reverse) | |
703 self.assertEqual(lastFrom50Reverse, lastFrom1000NewInstances) | |
704 self.assertEqual(firstFrom50Reverse, firstFrom1000NewInstances) | |
705 | |
706 # test with only 'to' and limit to 10 NewInstance changes | |
707 c = DoGet(_REMOTE, '/changes', { 'type': 'NewInstance', 'to': lastFrom1000NewInstances, 'limit' : 10 }) | |
708 self.assertEqual(lastFrom1000NewInstances, c['Changes'][-1]['Seq']) | |
709 self.assertEqual(10, len(c['Changes'])) | |
710 self.assertFalse(c['Done']) # Done can not be used when working in reverse direction | |
711 lastFrom10Reverse = c['Last'] | |
712 firstFrom10Reverse = c['First'] | |
713 self.assertLess(firstFrom10Reverse, lastFrom10Reverse) | |
714 self.assertEqual(lastFrom10Reverse, lastFrom1000NewInstances) | |
715 self.assertLessEqual(firstFrom50Reverse, firstFrom10Reverse) | |
694 | 716 |
695 | 717 |
696 def test_archive(self): | 718 def test_archive(self): |
697 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') | 719 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') |
698 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') | 720 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') |