def test_update_resource_catalogue_cache_using_templates(self): # WireCloud should support external resources (through the template_url and fromWGT fields) for being able to migrate them mac1, mac2 = self.build_mac_mocks() mac1.fromWGT = False parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" parser_mac2 = Mock() parser_mac2.get_resource_info.return_value = "mac2_json" CatalogueResource_mock = Mock() CatalogueResource_mock.objects.all.return_value = TestQueryResult( [mac1, mac2]) with patch('wirecloud.catalogue.utils.CatalogueResource', CatalogueResource_mock): with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, download_http_content=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = (parser_mac1, parser_mac2) update_resource_catalogue_cache() self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.save.called) self.assertFalse(mac2.delete.called)
def test_update_resource_catalogue_cache_from_normal_code(self): # test calling the update_resource_catalogue_cache function without using a custom ORM (like when it is called from south_migrations) mac1, mac2 = self.build_mac_mocks() parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" parser_mac2 = Mock() parser_mac2.get_resource_info.return_value = "mac2_json" CatalogueResource_mock = Mock() CatalogueResource_mock.objects.all.return_value = TestQueryResult( [mac1, mac2]) with patch('wirecloud.catalogue.utils.CatalogueResource', CatalogueResource_mock): with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = (parser_mac1, parser_mac2) update_resource_catalogue_cache() self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.save.called) self.assertFalse(mac2.delete.called)
def test_update_resource_catalogue_cache_autoremove_unsupported_resource( self): mac1, mac2 = self.build_mac_mocks() parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" orm = Mock() orm.CatalogueResource.objects.all.return_value = TestQueryResult( [mac1, mac2]) with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = ( parser_mac1, TemplateParseException('test')) with self.settings( WIRECLOUD_REMOVE_UNSUPPORTED_RESOURCES_MIGRATION=True): update_resource_catalogue_cache(orm) self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.delete.called)
def test_update_resource_catalogue_cache_autoremove_unsupported_resource(self): mac1, mac2 = self.build_mac_mocks() parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" orm = Mock() orm.CatalogueResource.objects.all.return_value = TestQueryResult([mac1, mac2]) with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = (parser_mac1, TemplateParseException('test')) with self.settings(WIRECLOUD_REMOVE_UNSUPPORTED_RESOURCES_MIGRATION=True): update_resource_catalogue_cache(orm) self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.delete.called)
def test_update_resource_catalogue_cache(self): mac1, mac2 = self.build_mac_mocks() parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" parser_mac2 = Mock() parser_mac2.get_resource_info.return_value = "mac2_json" orm = Mock() orm.CatalogueResource.objects.all.return_value = TestQueryResult([mac1, mac2]) with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = (parser_mac1, parser_mac2) update_resource_catalogue_cache(orm) self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.save.called) self.assertFalse(mac2.delete.called)
def test_update_resource_catalogue_cache_from_normal_code(self): # test calling the update_resource_catalogue_cache function without using a custom ORM (like when it is called from south_migrations) mac1, mac2 = self.build_mac_mocks() parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" parser_mac2 = Mock() parser_mac2.get_resource_info.return_value = "mac2_json" CatalogueResource_mock = Mock() CatalogueResource_mock.objects.all.return_value = TestQueryResult([mac1, mac2]) with patch('wirecloud.catalogue.utils.CatalogueResource', CatalogueResource_mock): with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = (parser_mac1, parser_mac2) update_resource_catalogue_cache() self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.save.called) self.assertFalse(mac2.delete.called)
def test_update_resource_catalogue_cache_using_templates(self): # WireCloud should support external resources (through the template_url and fromWGT fields) for being able to migrate them mac1, mac2 = self.build_mac_mocks() mac1.fromWGT = False parser_mac1 = Mock() parser_mac1.get_resource_info.return_value = "mac1_json" parser_mac2 = Mock() parser_mac2.get_resource_info.return_value = "mac2_json" CatalogueResource_mock = Mock() CatalogueResource_mock.objects.all.return_value = TestQueryResult([mac1, mac2]) with patch('wirecloud.catalogue.utils.CatalogueResource', CatalogueResource_mock): with patch.multiple('wirecloud.catalogue.utils', WgtFile=DEFAULT, TemplateParser=DEFAULT, download_http_content=DEFAULT, autospec=True) as context: context['TemplateParser'].side_effect = (parser_mac1, parser_mac2) update_resource_catalogue_cache() self.assertTrue(mac1.save.called) self.assertFalse(mac1.delete.called) self.assertTrue(mac2.save.called) self.assertFalse(mac2.delete.called)
def test_update_resource_catalogue_cache_no_resources(self): orm = Mock() orm.CatalogueResource.objects.all.return_value = TestQueryResult([]) update_resource_catalogue_cache(orm)
def forwards(self, orm): update_resource_catalogue_cache(orm)