| #!/usr/bin/python |
| # |
| # Copyright (C) 2008 Yu-Jie Lin |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| |
| __author__ = 'livibetter (Yu-Jie Lin)' |
| |
| |
| import unittest |
| try: |
| from xml.etree import ElementTree |
| except ImportError: |
| from elementtree import ElementTree |
| import gdata |
| from gdata import test_data |
| import gdata.webmastertools as webmastertools |
| |
| |
| class IndexedTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.indexed = webmastertools.Indexed() |
| |
| def testToAndFromString(self): |
| self.indexed.text = 'true' |
| self.assert_(self.indexed.text == 'true') |
| new_indexed = webmastertools.IndexedFromString(self.indexed.ToString()) |
| self.assert_(self.indexed.text == new_indexed.text) |
| |
| |
| class CrawledTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.crawled = webmastertools.Crawled() |
| |
| def testToAndFromString(self): |
| self.crawled.text = 'true' |
| self.assert_(self.crawled.text == 'true') |
| new_crawled = webmastertools.CrawledFromString(self.crawled.ToString()) |
| self.assert_(self.crawled.text == new_crawled.text) |
| |
| |
| class GeoLocationTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.geolocation = webmastertools.GeoLocation() |
| |
| def testToAndFromString(self): |
| self.geolocation.text = 'US' |
| self.assert_(self.geolocation.text == 'US') |
| new_geolocation = webmastertools.GeoLocationFromString( |
| self.geolocation.ToString()) |
| self.assert_(self.geolocation.text == new_geolocation.text) |
| |
| |
| class PreferredDomainTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.preferred_domain = webmastertools.PreferredDomain() |
| |
| def testToAndFromString(self): |
| self.preferred_domain.text = 'none' |
| self.assert_(self.preferred_domain.text == 'none') |
| new_preferred_domain = webmastertools.PreferredDomainFromString( |
| self.preferred_domain.ToString()) |
| self.assert_(self.preferred_domain.text == new_preferred_domain.text) |
| |
| |
| class CrawlRateTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.crawl_rate = webmastertools.CrawlRate() |
| |
| def testToAndFromString(self): |
| self.crawl_rate.text = 'normal' |
| self.assert_(self.crawl_rate.text == 'normal') |
| new_crawl_rate = webmastertools.CrawlRateFromString( |
| self.crawl_rate.ToString()) |
| self.assert_(self.crawl_rate.text == new_crawl_rate.text) |
| |
| |
| class EnhancedImageSearchTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.enhanced_image_search = webmastertools.EnhancedImageSearch() |
| |
| def testToAndFromString(self): |
| self.enhanced_image_search.text = 'true' |
| self.assert_(self.enhanced_image_search.text == 'true') |
| new_enhanced_image_search = webmastertools.EnhancedImageSearchFromString( |
| self.enhanced_image_search.ToString()) |
| self.assert_(self.enhanced_image_search.text == |
| new_enhanced_image_search.text) |
| |
| |
| class VerifiedTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.verified = webmastertools.Verified() |
| |
| def testToAndFromString(self): |
| self.verified.text = 'true' |
| self.assert_(self.verified.text == 'true') |
| new_verified = webmastertools.VerifiedFromString(self.verified.ToString()) |
| self.assert_(self.verified.text == new_verified.text) |
| |
| |
| class VerificationMethodMetaTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.meta = webmastertools.VerificationMethodMeta() |
| |
| def testToAndFromString(self): |
| self.meta.name = 'verify-vf1' |
| self.meta.content = 'a2Ai' |
| self.assert_(self.meta.name == 'verify-vf1') |
| self.assert_(self.meta.content == 'a2Ai') |
| new_meta = webmastertools.VerificationMethodMetaFromString( |
| self.meta.ToString()) |
| self.assert_(self.meta.name == new_meta.name) |
| self.assert_(self.meta.content == new_meta.content) |
| |
| |
| class VerificationMethodTest(unittest.TestCase): |
| |
| def setUp(self): |
| pass |
| |
| def testMetaTagToAndFromString(self): |
| self.method = webmastertools.VerificationMethod() |
| self.method.type = 'metatag' |
| self.method.in_use = 'false' |
| self.assert_(self.method.type == 'metatag') |
| self.assert_(self.method.in_use == 'false') |
| self.method.meta = webmastertools.VerificationMethodMeta(name='verify-vf1', |
| content='a2Ai') |
| self.assert_(self.method.meta.name == 'verify-vf1') |
| self.assert_(self.method.meta.content == 'a2Ai') |
| new_method = webmastertools.VerificationMethodFromString( |
| self.method.ToString()) |
| self.assert_(self.method.type == new_method.type) |
| self.assert_(self.method.in_use == new_method.in_use) |
| self.assert_(self.method.meta.name == new_method.meta.name) |
| self.assert_(self.method.meta.content == new_method.meta.content) |
| |
| method = webmastertools.VerificationMethod(type='xyz') |
| self.assertEqual(method.type, 'xyz') |
| method = webmastertools.VerificationMethod() |
| self.assert_(method.type is None) |
| |
| def testHtmlPageToAndFromString(self): |
| self.method = webmastertools.VerificationMethod() |
| self.method.type = 'htmlpage' |
| self.method.in_use = 'false' |
| self.method.text = '456456-google.html' |
| self.assert_(self.method.type == 'htmlpage') |
| self.assert_(self.method.in_use == 'false') |
| self.assert_(self.method.text == '456456-google.html') |
| self.assert_(self.method.meta is None) |
| new_method = webmastertools.VerificationMethodFromString( |
| self.method.ToString()) |
| self.assert_(self.method.type == new_method.type) |
| self.assert_(self.method.in_use == new_method.in_use) |
| self.assert_(self.method.text == new_method.text) |
| self.assert_(self.method.meta is None) |
| |
| def testConvertActualData(self): |
| feed = webmastertools.SitesFeedFromString(test_data.SITES_FEED) |
| self.assert_(len(feed.entry[0].verification_method) == 2) |
| check = 0 |
| for method in feed.entry[0].verification_method: |
| self.assert_(isinstance(method, webmastertools.VerificationMethod)) |
| if method.type == 'metatag': |
| self.assert_(method.in_use == 'false') |
| self.assert_(method.text is None) |
| self.assert_(method.meta.name == 'verify-v1') |
| self.assert_(method.meta.content == 'a2Ai') |
| check = check | 1 |
| elif method.type == 'htmlpage': |
| self.assert_(method.in_use == 'false') |
| self.assert_(method.text == '456456-google.html') |
| check = check | 2 |
| else: |
| self.fail('Wrong Verification Method: %s' % method.type) |
| self.assert_(check == 2 ** 2 - 1, |
| 'Should only have two Verification Methods, metatag and htmlpage') |
| |
| |
| class MarkupLanguageTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.markup_language = webmastertools.MarkupLanguage() |
| |
| def testToAndFromString(self): |
| self.markup_language.text = 'HTML' |
| self.assert_(self.markup_language.text == 'HTML') |
| new_markup_language = webmastertools.MarkupLanguageFromString( |
| self.markup_language.ToString()) |
| self.assert_(self.markup_language.text == new_markup_language.text) |
| |
| |
| class SitemapMobileTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_mobile = webmastertools.SitemapMobile() |
| |
| def testToAndFromString(self): |
| self.sitemap_mobile.markup_language.append(webmastertools.MarkupLanguage( |
| text = 'HTML')) |
| self.assert_(self.sitemap_mobile.text is None) |
| self.assert_(self.sitemap_mobile.markup_language[0].text == 'HTML') |
| new_sitemap_mobile = webmastertools.SitemapMobileFromString( |
| self.sitemap_mobile.ToString()) |
| self.assert_(new_sitemap_mobile.text is None) |
| self.assert_(self.sitemap_mobile.markup_language[0].text == |
| new_sitemap_mobile.markup_language[0].text) |
| |
| def testConvertActualData(self): |
| feed = webmastertools.SitemapsFeedFromString(test_data.SITEMAPS_FEED) |
| self.assert_(feed.sitemap_mobile.text.strip() == '') |
| self.assert_(len(feed.sitemap_mobile.markup_language) == 2) |
| check = 0 |
| for markup_language in feed.sitemap_mobile.markup_language: |
| self.assert_(isinstance(markup_language, webmastertools.MarkupLanguage)) |
| if markup_language.text == "HTML": |
| check = check | 1 |
| elif markup_language.text == "WAP": |
| check = check | 2 |
| else: |
| self.fail('Unexpected markup language: %s' % markup_language.text) |
| self.assert_(check == 2 ** 2 - 1, "Something is wrong with markup language") |
| |
| |
| class SitemapMobileMarkupLanguageTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_mobile_markup_language =\ |
| webmastertools.SitemapMobileMarkupLanguage() |
| |
| def testToAndFromString(self): |
| self.sitemap_mobile_markup_language.text = 'HTML' |
| self.assert_(self.sitemap_mobile_markup_language.text == 'HTML') |
| new_sitemap_mobile_markup_language =\ |
| webmastertools.SitemapMobileMarkupLanguageFromString( |
| self.sitemap_mobile_markup_language.ToString()) |
| self.assert_(self.sitemap_mobile_markup_language.text ==\ |
| new_sitemap_mobile_markup_language.text) |
| |
| |
| class PublicationLabelTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.publication_label = webmastertools.PublicationLabel() |
| |
| def testToAndFromString(self): |
| self.publication_label.text = 'Value1' |
| self.assert_(self.publication_label.text == 'Value1') |
| new_publication_label = webmastertools.PublicationLabelFromString( |
| self.publication_label.ToString()) |
| self.assert_(self.publication_label.text == new_publication_label.text) |
| |
| |
| class SitemapNewsTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_news = webmastertools.SitemapNews() |
| |
| def testToAndFromString(self): |
| self.sitemap_news.publication_label.append(webmastertools.PublicationLabel( |
| text = 'Value1')) |
| self.assert_(self.sitemap_news.text is None) |
| self.assert_(self.sitemap_news.publication_label[0].text == 'Value1') |
| new_sitemap_news = webmastertools.SitemapNewsFromString( |
| self.sitemap_news.ToString()) |
| self.assert_(new_sitemap_news.text is None) |
| self.assert_(self.sitemap_news.publication_label[0].text == |
| new_sitemap_news.publication_label[0].text) |
| |
| def testConvertActualData(self): |
| feed = webmastertools.SitemapsFeedFromString(test_data.SITEMAPS_FEED) |
| self.assert_(len(feed.sitemap_news.publication_label) == 3) |
| check = 0 |
| for publication_label in feed.sitemap_news.publication_label: |
| if publication_label.text == "Value1": |
| check = check | 1 |
| elif publication_label.text == "Value2": |
| check = check | 2 |
| elif publication_label.text == "Value3": |
| check = check | 4 |
| else: |
| self.fail('Unexpected publication label: %s' % markup_language.text) |
| self.assert_(check == 2 ** 3 - 1, |
| 'Something is wrong with publication label') |
| |
| |
| class SitemapNewsPublicationLabelTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_news_publication_label =\ |
| webmastertools.SitemapNewsPublicationLabel() |
| |
| def testToAndFromString(self): |
| self.sitemap_news_publication_label.text = 'LabelValue' |
| self.assert_(self.sitemap_news_publication_label.text == 'LabelValue') |
| new_sitemap_news_publication_label =\ |
| webmastertools.SitemapNewsPublicationLabelFromString( |
| self.sitemap_news_publication_label.ToString()) |
| self.assert_(self.sitemap_news_publication_label.text ==\ |
| new_sitemap_news_publication_label.text) |
| |
| |
| class SitemapLastDownloadedTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_last_downloaded = webmastertools.SitemapLastDownloaded() |
| |
| def testToAndFromString(self): |
| self.sitemap_last_downloaded.text = '2006-11-18T19:27:32.543Z' |
| self.assert_(self.sitemap_last_downloaded.text ==\ |
| '2006-11-18T19:27:32.543Z') |
| new_sitemap_last_downloaded =\ |
| webmastertools.SitemapLastDownloadedFromString( |
| self.sitemap_last_downloaded.ToString()) |
| self.assert_(self.sitemap_last_downloaded.text ==\ |
| new_sitemap_last_downloaded.text) |
| |
| |
| class SitemapTypeTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_type = webmastertools.SitemapType() |
| |
| def testToAndFromString(self): |
| self.sitemap_type.text = 'WEB' |
| self.assert_(self.sitemap_type.text == 'WEB') |
| new_sitemap_type = webmastertools.SitemapTypeFromString( |
| self.sitemap_type.ToString()) |
| self.assert_(self.sitemap_type.text == new_sitemap_type.text) |
| |
| |
| class SitemapStatusTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_status = webmastertools.SitemapStatus() |
| |
| def testToAndFromString(self): |
| self.sitemap_status.text = 'Pending' |
| self.assert_(self.sitemap_status.text == 'Pending') |
| new_sitemap_status = webmastertools.SitemapStatusFromString( |
| self.sitemap_status.ToString()) |
| self.assert_(self.sitemap_status.text == new_sitemap_status.text) |
| |
| |
| class SitemapUrlCountTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.sitemap_url_count = webmastertools.SitemapUrlCount() |
| |
| def testToAndFromString(self): |
| self.sitemap_url_count.text = '0' |
| self.assert_(self.sitemap_url_count.text == '0') |
| new_sitemap_url_count = webmastertools.SitemapUrlCountFromString( |
| self.sitemap_url_count.ToString()) |
| self.assert_(self.sitemap_url_count.text == new_sitemap_url_count.text) |
| |
| |
| class SitesEntryTest(unittest.TestCase): |
| |
| def setUp(self): |
| pass |
| |
| def testToAndFromString(self): |
| entry = webmastertools.SitesEntry( |
| indexed=webmastertools.Indexed(text='true'), |
| crawled=webmastertools.Crawled(text='2008-09-14T08:59:28.000'), |
| geolocation=webmastertools.GeoLocation(text='US'), |
| preferred_domain=webmastertools.PreferredDomain(text='none'), |
| crawl_rate=webmastertools.CrawlRate(text='normal'), |
| enhanced_image_search=webmastertools.EnhancedImageSearch(text='true'), |
| verified=webmastertools.Verified(text='false'), |
| ) |
| self.assert_(entry.indexed.text == 'true') |
| self.assert_(entry.crawled.text == '2008-09-14T08:59:28.000') |
| self.assert_(entry.geolocation.text == 'US') |
| self.assert_(entry.preferred_domain.text == 'none') |
| self.assert_(entry.crawl_rate.text == 'normal') |
| self.assert_(entry.enhanced_image_search.text == 'true') |
| self.assert_(entry.verified.text == 'false') |
| new_entry = webmastertools.SitesEntryFromString(entry.ToString()) |
| self.assert_(new_entry.indexed.text == 'true') |
| self.assert_(new_entry.crawled.text == '2008-09-14T08:59:28.000') |
| self.assert_(new_entry.geolocation.text == 'US') |
| self.assert_(new_entry.preferred_domain.text == 'none') |
| self.assert_(new_entry.crawl_rate.text == 'normal') |
| self.assert_(new_entry.enhanced_image_search.text == 'true') |
| self.assert_(new_entry.verified.text == 'false') |
| |
| def testConvertActualData(self): |
| feed = webmastertools.SitesFeedFromString(test_data.SITES_FEED) |
| self.assert_(len(feed.entry) == 1) |
| entry = feed.entry[0] |
| self.assert_(isinstance(entry, webmastertools.SitesEntry)) |
| self.assert_(entry.indexed.text == 'true') |
| self.assert_(entry.crawled.text == '2008-09-14T08:59:28.000') |
| self.assert_(entry.geolocation.text == 'US') |
| self.assert_(entry.preferred_domain.text == 'none') |
| self.assert_(entry.crawl_rate.text == 'normal') |
| self.assert_(entry.enhanced_image_search.text == 'true') |
| self.assert_(entry.verified.text == 'false') |
| |
| |
| class SitesFeedTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.feed = gdata.webmastertools.SitesFeedFromString(test_data.SITES_FEED) |
| |
| def testToAndFromString(self): |
| self.assert_(len(self.feed.entry) == 1) |
| for entry in self.feed.entry: |
| self.assert_(isinstance(entry, webmastertools.SitesEntry)) |
| new_feed = webmastertools.SitesFeedFromString(self.feed.ToString()) |
| self.assert_(len(new_feed.entry) == 1) |
| for entry in new_feed.entry: |
| self.assert_(isinstance(entry, webmastertools.SitesEntry)) |
| |
| |
| class SitemapsEntryTest(unittest.TestCase): |
| |
| def testRegularToAndFromString(self): |
| entry = webmastertools.SitemapsEntry( |
| sitemap_type=webmastertools.SitemapType(text='WEB'), |
| sitemap_status=webmastertools.SitemapStatus(text='Pending'), |
| sitemap_last_downloaded=webmastertools.SitemapLastDownloaded( |
| text='2006-11-18T19:27:32.543Z'), |
| sitemap_url_count=webmastertools.SitemapUrlCount(text='102'), |
| ) |
| self.assert_(entry.sitemap_type.text == 'WEB') |
| self.assert_(entry.sitemap_status.text == 'Pending') |
| self.assert_(entry.sitemap_last_downloaded.text ==\ |
| '2006-11-18T19:27:32.543Z') |
| self.assert_(entry.sitemap_url_count.text == '102') |
| new_entry = webmastertools.SitemapsEntryFromString(entry.ToString()) |
| self.assert_(new_entry.sitemap_type.text == 'WEB') |
| self.assert_(new_entry.sitemap_status.text == 'Pending') |
| self.assert_(new_entry.sitemap_last_downloaded.text ==\ |
| '2006-11-18T19:27:32.543Z') |
| self.assert_(new_entry.sitemap_url_count.text == '102') |
| |
| def testConvertActualData(self): |
| feed = gdata.webmastertools.SitemapsFeedFromString(test_data.SITEMAPS_FEED) |
| self.assert_(len(feed.entry) == 3) |
| for entry in feed.entry: |
| self.assert_(entry, webmastertools.SitemapsEntry) |
| self.assert_(entry.sitemap_status, webmastertools.SitemapStatus) |
| self.assert_(entry.sitemap_last_downloaded, |
| webmastertools.SitemapLastDownloaded) |
| self.assert_(entry.sitemap_url_count, webmastertools.SitemapUrlCount) |
| self.assert_(entry.sitemap_status.text == 'StatusValue') |
| self.assert_(entry.sitemap_last_downloaded.text ==\ |
| '2006-11-18T19:27:32.543Z') |
| self.assert_(entry.sitemap_url_count.text == '102') |
| if entry.id.text == 'http://www.example.com/sitemap-index.xml': |
| self.assert_(entry.sitemap_type, webmastertools.SitemapType) |
| self.assert_(entry.sitemap_type.text == 'WEB') |
| self.assert_(entry.sitemap_mobile_markup_language is None) |
| self.assert_(entry.sitemap_news_publication_label is None) |
| elif entry.id.text == 'http://www.example.com/mobile/sitemap-index.xml': |
| self.assert_(entry.sitemap_mobile_markup_language, |
| webmastertools.SitemapMobileMarkupLanguage) |
| self.assert_(entry.sitemap_mobile_markup_language.text == 'HTML') |
| self.assert_(entry.sitemap_type is None) |
| self.assert_(entry.sitemap_news_publication_label is None) |
| elif entry.id.text == 'http://www.example.com/news/sitemap-index.xml': |
| self.assert_(entry.sitemap_news_publication_label, |
| webmastertools.SitemapNewsPublicationLabel) |
| self.assert_(entry.sitemap_news_publication_label.text == 'LabelValue') |
| self.assert_(entry.sitemap_type is None) |
| self.assert_(entry.sitemap_mobile_markup_language is None) |
| |
| |
| class SitemapsFeedTest(unittest.TestCase): |
| |
| def setUp(self): |
| self.feed = gdata.webmastertools.SitemapsFeedFromString( |
| test_data.SITEMAPS_FEED) |
| |
| def testToAndFromString(self): |
| self.assert_(len(self.feed.entry) == 3) |
| for entry in self.feed.entry: |
| self.assert_(isinstance(entry, webmastertools.SitemapsEntry)) |
| new_feed = webmastertools.SitemapsFeedFromString(self.feed.ToString()) |
| self.assert_(len(new_feed.entry) == 3) |
| for entry in new_feed.entry: |
| self.assert_(isinstance(entry, webmastertools.SitemapsEntry)) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |