class ExternalCategoryFixtureTest(TestCase): fixtures = ['categories', 'sources', 'external_categories'] def setUp(self): self.api = API() self.html_parser = HTMLParser.HTMLParser() self.eventful_sources = Source.objects.filter(name='eventful') def test_all_external_categories_imported(self): self.assertGreater(len(self.eventful_sources), 0, 'Unable to find Eventful source object') eventful_source = self.eventful_sources[0] resp = self.api.call('/categories/list') self.assertTrue(resp.get('category')) eventful_categories = resp.get('category') mapped_categories = [] unmapped_categories = [] for eventful_category in eventful_categories: xid, name = eventful_category['id'], self.html_parser.unescape(eventful_category['name']) mapped_category = ExternalCategory.objects.filter(xid=xid, source=eventful_source, name=name) if len(mapped_category) > 0: mapped_categories.extend(mapped_category) else: unmapped_categories.append(eventful_category) self.assertEqual([], unmapped_categories, 'Unable to find external %s category mappings for: %s' % (eventful_source, ', '.join(map(lambda x: x['name'], unmapped_categories)))) def test_all_external_categories_mapped(self): self.assertGreater(len(self.eventful_sources), 0, 'Unable to find Eventful source object') eventful_source = self.eventful_sources[0] external_categories = ExternalCategory.objects.filter(source=eventful_source) for external_category in external_categories: self.assertTrue(external_category.concrete_category, 'External category for %s not mapped: %s' % (eventful_source.name, external_category.name)) self.assertIsInstance(external_category.concrete_category, Category, 'Unexpected type of associated concrete category')
def setUp(self): self.api = API() self.html_parser = HTMLParser.HTMLParser() self.eventful_sources = Source.objects.filter(name='eventful')