~maas-maintainers/maas/maas-2.0-new-networking-templates

« back to all changes in this revision

Viewing changes to src/maasserver/views/tests/test_images.py

  • Committer: Blake Rouse
  • Date: 2015-11-30 19:12:12 UTC
  • mto: (4489.9.13 python3)
  • mto: This revision was merged to the branch mainline in revision 4533.
  • Revision ID: blake.rouse@canonical.com-20151130191212-nxj2j3gx3lxntkkx
Fix review.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
import json
16
16
import random
17
17
 
 
18
from django.conf import settings
18
19
from django.core.urlresolvers import reverse
19
20
from lxml.html import fromstring
20
21
from maasserver.enum import (
589
590
        self.patch(
590
591
            images_view, 'is_import_resources_running').return_value = True
591
592
        response = self.get_images_ajax()
592
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
593
        json_obj = json.loads(
 
594
            response.content.decode(settings.DEFAULT_CHARSET))
593
595
        self.assertTrue(json_obj['region_import_running'])
594
596
 
595
597
    def test__returns_region_import_running_False(self):
597
599
        self.patch(
598
600
            images_view, 'is_import_resources_running').return_value = False
599
601
        response = self.get_images_ajax()
600
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
602
        json_obj = json.loads(
 
603
            response.content.decode(settings.DEFAULT_CHARSET))
601
604
        self.assertFalse(json_obj['region_import_running'])
602
605
 
603
606
    def test__returns_cluster_import_running_True(self):
605
608
        self.patch(
606
609
            images_view, 'is_import_boot_images_running').return_value = True
607
610
        response = self.get_images_ajax()
608
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
611
        json_obj = json.loads(
 
612
            response.content.decode(settings.DEFAULT_CHARSET))
609
613
        self.assertTrue(json_obj['cluster_import_running'])
610
614
 
611
615
    def test__returns_cluster_import_running_False(self):
613
617
        self.patch(
614
618
            images_view, 'is_import_boot_images_running').return_value = False
615
619
        response = self.get_images_ajax()
616
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
620
        json_obj = json.loads(
 
621
            response.content.decode(settings.DEFAULT_CHARSET))
617
622
        self.assertFalse(json_obj['cluster_import_running'])
618
623
 
619
624
    def test_returns_resources(self):
621
626
        resources = [factory.make_usable_boot_resource() for _ in range(3)]
622
627
        resource_ids = [resource.id for resource in resources]
623
628
        response = self.get_images_ajax()
624
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
629
        json_obj = json.loads(
 
630
            response.content.decode(settings.DEFAULT_CHARSET))
625
631
        json_ids = [
626
632
            json_resource['id']
627
633
            for json_resource in json_obj['resources']
633
639
        self.client_log_in()
634
640
        resource = factory.make_usable_boot_resource()
635
641
        response = self.get_images_ajax()
636
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
642
        json_obj = json.loads(
 
643
            response.content.decode(settings.DEFAULT_CHARSET))
637
644
        json_updated = datetime.datetime.strptime(
638
645
            json_obj['resources'][0]['lastUpdate'], "%a, %d %b. %Y %H:%M:%S")
639
646
        self.assertEqual(resource.updated.timetuple(),
643
650
        self.client_log_in()
644
651
        factory.make_usable_boot_resource()
645
652
        response = self.get_images_ajax()
646
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
653
        json_obj = json.loads(
 
654
            response.content.decode(settings.DEFAULT_CHARSET))
647
655
        json_resource = json_obj['resources'][0]
648
656
        self.assertThat(
649
657
            json_resource,
660
668
        factory.make_usable_boot_resource(
661
669
            rtype=BOOT_RESOURCE_TYPE.SYNCED, name=name)
662
670
        response = self.get_images_ajax()
663
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
671
        json_obj = json.loads(
 
672
            response.content.decode(settings.DEFAULT_CHARSET))
664
673
        json_resource = json_obj['resources'][0]
665
674
        self.assertEqual(version, json_resource['title'])
666
675
 
676
685
                osystem=os_name, distro_series=series,
677
686
                architecture=resource.architecture)
678
687
        response = self.get_images_ajax()
679
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
688
        json_obj = json.loads(
 
689
            response.content.decode(settings.DEFAULT_CHARSET))
680
690
        json_resource = json_obj['resources'][0]
681
691
        self.assertEqual(number_of_nodes, json_resource['numberOfNodes'])
682
692
 
693
703
                status=NODE_STATUS.DEPLOYED,
694
704
                architecture=resource.architecture)
695
705
        response = self.get_images_ajax()
696
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
706
        json_obj = json.loads(
 
707
            response.content.decode(settings.DEFAULT_CHARSET))
697
708
        json_resource = json_obj['resources'][0]
698
709
        self.assertEqual(number_of_nodes, json_resource['numberOfNodes'])
699
710
 
715
726
                osystem=os_name, distro_series=series,
716
727
                architecture=node_architecture)
717
728
        response = self.get_images_ajax()
718
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
729
        json_obj = json.loads(
 
730
            response.content.decode(settings.DEFAULT_CHARSET))
719
731
        json_resource = json_obj['resources'][0]
720
732
        self.assertEqual(number_of_nodes, json_resource['numberOfNodes'])
721
733
 
729
741
                rtype=BOOT_RESOURCE_TYPE.SYNCED,
730
742
                name=name, architecture='%s/%s' % (arch, subarch))
731
743
        response = self.get_images_ajax()
732
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
744
        json_obj = json.loads(
 
745
            response.content.decode(settings.DEFAULT_CHARSET))
733
746
        self.assertEqual(
734
747
            1, len(json_obj['resources']),
735
748
            'More than one resource was returned.')
747
760
            resource_set = factory.make_BootResourceSet(resource)
748
761
            factory.make_BootResourceFile(resource_set, largefile)
749
762
        response = self.get_images_ajax()
750
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
763
        json_obj = json.loads(
 
764
            response.content.decode(settings.DEFAULT_CHARSET))
751
765
        json_resource = json_obj['resources'][0]
752
766
        self.assertEqual(
753
767
            format_size(largefile.total_size), json_resource['size'])
774
788
                architecture=node_architecture)
775
789
 
776
790
        response = self.get_images_ajax()
777
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
791
        json_obj = json.loads(
 
792
            response.content.decode(settings.DEFAULT_CHARSET))
778
793
        json_resource = json_obj['resources'][0]
779
794
        self.assertEqual(number_of_nodes, json_resource['numberOfNodes'])
780
795
 
793
808
            BootResource.objects,
794
809
            'get_resources_matching_boot_images').return_value = resources
795
810
        response = self.get_images_ajax()
796
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
811
        json_obj = json.loads(
 
812
            response.content.decode(settings.DEFAULT_CHARSET))
797
813
        json_resource = json_obj['resources'][0]
798
814
        self.assertTrue(json_resource['complete'])
799
815
 
811
827
                rtype=BOOT_RESOURCE_TYPE.SYNCED,
812
828
                name=name, architecture='%s/%s' % (arch, subarch))
813
829
        response = self.get_images_ajax()
814
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
830
        json_obj = json.loads(
 
831
            response.content.decode(settings.DEFAULT_CHARSET))
815
832
        json_resource = json_obj['resources'][0]
816
833
        self.assertFalse(json_resource['complete'])
817
834
 
830
847
            resource_set = factory.make_BootResourceSet(resource)
831
848
            factory.make_BootResourceFile(resource_set, largefile)
832
849
        response = self.get_images_ajax()
833
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
850
        json_obj = json.loads(
 
851
            response.content.decode(settings.DEFAULT_CHARSET))
834
852
        json_resource = json_obj['resources'][0]
835
853
        self.assertEqual("Downloading  50%", json_resource['status'])
836
854
 
839
857
        name = 'ubuntu/%s' % factory.make_name('series')
840
858
        arch = factory.make_name('arch')
841
859
        subarches = [factory.make_name('subarch') for _ in range(3)]
842
 
        largefile = factory.make_LargeFile(content="".encode("utf-8"))
 
860
        largefile = factory.make_LargeFile(
 
861
            content="".encode(settings.DEFAULT_CHARSET))
843
862
        for subarch in subarches:
844
863
            resource = factory.make_BootResource(
845
864
                rtype=BOOT_RESOURCE_TYPE.SYNCED,
847
866
            resource_set = factory.make_BootResourceSet(resource)
848
867
            factory.make_BootResourceFile(resource_set, largefile)
849
868
        response = self.get_images_ajax()
850
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
869
        json_obj = json.loads(
 
870
            response.content.decode(settings.DEFAULT_CHARSET))
851
871
        json_resource = json_obj['resources'][0]
852
872
        self.assertEqual("Queued for download", json_resource['status'])
853
873
 
866
886
            BootResource.objects,
867
887
            'get_resources_matching_boot_images').return_value = resources
868
888
        response = self.get_images_ajax()
869
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
889
        json_obj = json.loads(
 
890
            response.content.decode(settings.DEFAULT_CHARSET))
870
891
        json_resource = json_obj['resources'][0]
871
892
        self.assertEqual("Complete", json_resource['status'])
872
893
 
883
904
            BootResource.objects,
884
905
            'get_resources_matching_boot_images').return_value = []
885
906
        response = self.get_images_ajax()
886
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
907
        json_obj = json.loads(
 
908
            response.content.decode(settings.DEFAULT_CHARSET))
887
909
        json_resource = json_obj['resources'][0]
888
910
        self.assertEqual(
889
911
            "Waiting for clusters to sync", json_resource['status'])
903
925
        self.patch(
904
926
            images_view, 'is_import_boot_images_running').return_value = True
905
927
        response = self.get_images_ajax()
906
 
        json_obj = json.loads(response.content.decode('unicode_escape'))
 
928
        json_obj = json.loads(
 
929
            response.content.decode(settings.DEFAULT_CHARSET))
907
930
        json_resource = json_obj['resources'][0]
908
931
        self.assertEqual(
909
932
            "Syncing to clusters", json_resource['status'])