def parse_invalid_placement_policy_type_test(self):
     """Parsing invalid placement policy type raises error"""
     with self.assertRaises(CLIError):
         sf_c.parse_placement_policies([{
             'type': 'test',
             'domain_name': 'test'
         }])
    def parse_all_placement_policy_types_test(self):
        """Parse all placement policy types"""

        from azure.servicefabric.models.service_placement_non_partially_place_service_policy_description import ServicePlacementNonPartiallyPlaceServicePolicyDescription  # pylint: disable=line-too-long
        from azure.servicefabric.models.service_placement_prefer_primary_domain_policy_description import ServicePlacementPreferPrimaryDomainPolicyDescription  #pylint: disable=line-too-long
        from azure.servicefabric.models.service_placement_required_domain_policy_description import ServicePlacementRequiredDomainPolicyDescription  #pylint: disable=line-too-long
        from azure.servicefabric.models.service_placement_require_domain_distribution_policy_description import ServicePlacementRequireDomainDistributionPolicyDescription  #pylint: disable=line-too-long

        res = sf_c.parse_placement_policies([{
            'type': 'NonPartiallyPlaceService'
        }, {
            'type': 'PreferPrimaryDomain',
            'domain_name': 'test_1'
        }, {
            'type': 'RequireDomain',
            'domain_name': 'test-22'
        }, {
            'type': 'RequireDomainDistribution',
            'domain_name': 'test_3'
        }])
        self.assertIsInstance(
            res[0], ServicePlacementNonPartiallyPlaceServicePolicyDescription)
        self.assertIsInstance(
            res[1], ServicePlacementPreferPrimaryDomainPolicyDescription)
        self.assertEqual(res[1].domain_name, 'test_1')
        self.assertIsInstance(res[2],
                              ServicePlacementRequiredDomainPolicyDescription)
        self.assertEqual(res[2].domain_name, 'test-22')
        self.assertIsInstance(
            res[3], ServicePlacementRequireDomainDistributionPolicyDescription)
        self.assertEqual(res[3].domain_name, 'test_3')
 def parse_missing_placement_policy_domain_name_test(self):
     """Parsing missing domain name in placement policy raises error"""
     with self.assertRaises(CLIError):
         sf_c.parse_placement_policies([{'type': 'PreferPrimaryDomain'}])