def test_load_compat_table_existing_resources(self): version = self.get_instance("Version", ("firefox_desktop", "1.0")) browser = version.browser feature = self.get_instance("Feature", "web-css-background-size-contain_and_cover") support = self.create(Support, version=version, feature=feature) browser_id = str(browser.id) version_id = str(version.id) feature_id = str(feature.id) support_id = str(support.id) scraped_data = self.empty_scrape() scraped_table = { "name": "desktop", "browsers": [{"id": browser_id, "name": browser.name["en"], "slug": browser.slug}], "versions": [{"id": version_id, "browser": browser_id, "version": "1.0"}], "features": [{"id": feature_id, "name": feature.name["en"], "slug": feature.slug}], "supports": [{"id": support_id, "feature": feature_id, "version": version_id, "support": "yes"}], } scraped_data["compat"].append(scraped_table) view = ScrapedViewFeature(self.page, scraped_data) out = view.generate_data() expected = self.empty_view(scraped_data) expected["linked"]["browsers"].append(view.load_browser(browser.id)) expected["linked"]["versions"].append(view.load_version(version.id)) expected["linked"]["features"].append(view.load_feature(feature.id)) expected["linked"]["supports"].append(view.load_support(support.id)) expected["meta"]["compat_table"]["supports"][feature_id] = {browser_id: [support_id]} expected["meta"]["compat_table"]["tabs"].append({"name": {"en": "Desktop Browsers"}, "browsers": [browser_id]}) self.assertDataEqual(expected, out)
def test_load_compat_table_new_support_with_note(self): version = self.get_instance('Version', ('firefox_desktop', '1.0')) browser = version.browser feature = self.get_instance( 'Feature', 'web-css-background-size-contain_and_cover') browser_id = str(browser.id) version_id = str(version.id) feature_id = str(feature.id) support_id = '_%s-%s' % (feature_id, version_id) scraped_data = self.empty_scrape() scraped_table = { 'name': 'desktop', 'browsers': [{ 'id': browser_id, 'name': browser.name['en'], 'slug': browser.slug }], 'versions': [{ 'id': version_id, 'browser': browser_id, 'version': '1.0' }], 'features': [{ 'id': feature_id, 'name': feature.name['en'], 'slug': feature.slug }], 'supports': [{ 'id': support_id, 'feature': feature_id, 'version': version_id, 'support': 'yes', 'footnote': 'Footnote' }] } scraped_data['compat'].append(scraped_table) view = ScrapedViewFeature(self.page, scraped_data) out = view.generate_data() expected = self.empty_view(scraped_data) support_content = view.new_support(scraped_table['supports'][0]) expected['linked']['browsers'].append(view.load_browser(browser.id)) expected['linked']['versions'].append(view.load_version(version.id)) expected['linked']['features'].append(view.load_feature(feature.id)) expected['linked']['supports'].append(support_content) expected['meta']['compat_table']['supports'][feature_id] = { browser_id: [support_id] } expected['meta']['compat_table']['tabs'].append({ 'name': { 'en': 'Desktop Browsers' }, 'browsers': [browser_id] }) expected['meta']['compat_table']['notes'][support_id] = 1 self.assertDataEqual(expected, out)
def test_load_compat_table_existing_resources(self): version = self.get_instance('Version', ('firefox_desktop', '1.0')) browser = version.browser feature = self.get_instance( 'Feature', 'web-css-background-size-contain_and_cover') support = self.create(Support, version=version, feature=feature) browser_id = str(browser.id) version_id = str(version.id) feature_id = str(feature.id) support_id = str(support.id) scraped_data = self.empty_scrape() scraped_table = { 'name': 'desktop', 'browsers': [{ 'id': browser_id, 'name': browser.name['en'], 'slug': browser.slug }], 'versions': [{ 'id': version_id, 'browser': browser_id, 'version': '1.0' }], 'features': [{ 'id': feature_id, 'name': feature.name['en'], 'slug': feature.slug }], 'supports': [{ 'id': support_id, 'feature': feature_id, 'version': version_id, 'support': 'yes' }] } scraped_data['compat'].append(scraped_table) view = ScrapedViewFeature(self.page, scraped_data) out = view.generate_data() expected = self.empty_view(scraped_data) expected['features']['links']['children'] = [feature_id] expected['linked']['browsers'].append(view.load_browser(browser.id)) expected['linked']['versions'].append(view.load_version(version.id)) expected['linked']['features'].append(view.load_feature(feature.id)) expected['linked']['supports'].append(view.load_support(support.id)) expected['meta']['compat_table']['supports'][feature_id] = { browser_id: [support_id] } expected['meta']['compat_table']['tabs'].append({ 'name': { 'en': 'Desktop Browsers' }, 'browsers': [browser_id] }) self.assertDataEqual(expected, out)
def test_load_feature_canonical_name(self): feature = self.create( Feature, slug='web-css-background-size_list-item', name={'zxx': 'list-item'}, parent=self.feature) view = ScrapedViewFeature(self.page, self.empty_scrape()) feature_content = view.load_feature(feature.id) expected = { 'id': str(feature.id), 'name': 'list-item', 'slug': feature.slug, 'mdn_uri': None, 'obsolete': False, 'stable': True, 'standardized': True, 'experimental': False, 'links': { 'children': [], 'parent': str(self.feature.id), 'references': [], 'supports': []}} self.assertDataEqual(expected, feature_content)
def test_load_feature(self): feature = self.get_instance( 'Feature', 'web-css-background-size-contain_and_cover') view = ScrapedViewFeature(self.page, self.empty_scrape()) feature_content = view.load_feature(feature.id) expected = { 'id': str(feature.id), 'name': {'en': '<code>contain</code> and <code>cover</code>'}, 'slug': feature.slug, 'mdn_uri': None, 'obsolete': False, 'stable': True, 'standardized': True, 'experimental': False, 'links': { 'children': [], 'parent': str(self.feature.id), 'references': [], 'supports': []}} self.assertDataEqual(expected, feature_content)
def test_load_feature(self): feature = self.get_instance("Feature", "web-css-background-size-contain_and_cover") view = ScrapedViewFeature(self.page, self.empty_scrape()) feature_content = view.load_feature(feature.id) expected = { "id": str(feature.id), "name": {"en": "<code>contain</code> and <code>cover</code>"}, "slug": feature.slug, "mdn_uri": None, "obsolete": False, "stable": True, "standardized": True, "experimental": False, "links": {"children": [], "parent": str(self.feature.id), "sections": [], "supports": []}, } self.assertDataEqual(expected, feature_content)
def test_load_feature_canonical_name(self): feature = self.create( Feature, slug="web-css-background-size_list-item", name={"zxx": "list-item"}, parent=self.feature ) view = ScrapedViewFeature(self.page, self.empty_scrape()) feature_content = view.load_feature(feature.id) expected = { "id": str(feature.id), "name": "list-item", "slug": feature.slug, "mdn_uri": None, "obsolete": False, "stable": True, "standardized": True, "experimental": False, "links": {"children": [], "parent": str(self.feature.id), "sections": [], "supports": []}, } self.assertDataEqual(expected, feature_content)
def test_load_compat_table_existing_resources(self): version = self.get_instance('Version', ('firefox_desktop', '1.0')) browser = version.browser feature = self.get_instance( 'Feature', 'web-css-background-size-contain_and_cover') support = self.create(Support, version=version, feature=feature) browser_id = str(browser.id) version_id = str(version.id) feature_id = str(feature.id) support_id = str(support.id) scraped_data = self.empty_scrape() scraped_table = { 'name': 'desktop', 'browsers': [{ 'id': browser_id, 'name': browser.name['en'], 'slug': browser.slug}], 'versions': [{ 'id': version_id, 'browser': browser_id, 'version': '1.0'}], 'features': [{ 'id': feature_id, 'name': feature.name['en'], 'slug': feature.slug}], 'supports': [{ 'id': support_id, 'feature': feature_id, 'version': version_id, 'support': 'yes'}]} scraped_data['compat'].append(scraped_table) view = ScrapedViewFeature(self.page, scraped_data) out = view.generate_data() expected = self.empty_view(scraped_data) expected['features']['links']['children'] = [feature_id] expected['linked']['browsers'].append(view.load_browser(browser.id)) expected['linked']['versions'].append(view.load_version(version.id)) expected['linked']['features'].append(view.load_feature(feature.id)) expected['linked']['supports'].append(view.load_support(support.id)) expected['meta']['compat_table']['supports'][feature_id] = { browser_id: [support_id]} expected['meta']['compat_table']['tabs'].append({ 'name': {'en': 'Desktop Browsers'}, 'browsers': [browser_id]}) self.assertDataEqual(expected, out)
def test_load_feature_canonical_name(self): feature = self.create(Feature, slug='web-css-background-size_list-item', name={'zxx': 'list-item'}, parent=self.feature) view = ScrapedViewFeature(self.page, self.empty_scrape()) feature_content = view.load_feature(feature.id) expected = { 'id': str(feature.id), 'name': 'list-item', 'slug': feature.slug, 'mdn_uri': None, 'obsolete': False, 'stable': True, 'standardized': True, 'experimental': False, 'links': { 'children': [], 'parent': str(self.feature.id), 'references': [], 'supports': [] } } self.assertDataEqual(expected, feature_content)
def test_load_feature(self): feature = self.get_instance( 'Feature', 'web-css-background-size-contain_and_cover') view = ScrapedViewFeature(self.page, self.empty_scrape()) feature_content = view.load_feature(feature.id) expected = { 'id': str(feature.id), 'name': { 'en': '<code>contain</code> and <code>cover</code>' }, 'slug': feature.slug, 'mdn_uri': None, 'obsolete': False, 'stable': True, 'standardized': True, 'experimental': False, 'links': { 'children': [], 'parent': str(self.feature.id), 'references': [], 'supports': [] } } self.assertDataEqual(expected, feature_content)