Exemple #1
0
    def test_wikidata_get_wikidata(self):
        page = wptools.wikidata(skip=SKIP_FLAG, silent=SILENT_FLAG)

        page.cache = {'wikidata': wikidata.cache}
        page._set_data('wikidata')

        page.cache['labels'] = labels_1.cache
        page._set_data('labels')
        page.cache['labels'] = labels_2.cache
        page._set_data('labels')
        page.cache['labels'] = labels_3.cache
        page._set_data('labels')

        page._post_labels_updates()

        page.cache['imageinfo'] = imageinfo.cache
        page._set_data('imageinfo')

        self.assertTrue('requests' not in page.data)

        data = page.data
        self.assertEqual(data['description'], u'English writer and humorist')
        self.assertEqual(data['label'], 'Douglas Adams')
        self.assertEqual(len(data['claims']), 102)
        self.assertEqual(len(data['labels']), 147)
        self.assertEqual(len(data['wikidata']), 102)
        self.assertEqual(str(data['title']), 'Douglas_Adams')
        self.assertEqual(str(data['what']), 'human')
        self.assertEqual(str(data['wikibase']), 'Q42')
        self.assertTrue('wikidata' in data['modified'])
        self.assertTrue(data['wikidata_url'].endswith('Q42'))

        self.assertTrue('requests' not in page.data)
Exemple #2
0
 def test_wikidata_disambig(self):
     """
     Ensure title param is set given only wikibase
     """
     page = wptools.wikidata(wikibase='TEST')
     page.cache = {'wikidata': wikidata.cache}
     page._set_wikidata()
     self.assertEqual(str(page.params['title']), 'Douglas_Adams')
Exemple #3
0
    def test_wikidata_query(self):
        page = wptools.wikidata('TEST')
        qobj = wptools.query.WPToolsQuery()

        page.data['entities'] = ['TEST']
        qry = page._query('labels', qobj)
        self.assertTrue(qry.endswith('TEST'))

        qry = page._query('wikidata', qobj)
        self.assertTrue(qry.endswith('TEST'))
Exemple #4
0
    def test_wikidata_disambig(self):
        """
        Ensure title param is set given only wikibase
        """
        page = wptools.wikidata(skip=SKIP_FLAG, wikibase='TEST')
        page.cache = {'wikidata': wikidata.cache}
        page._set_wikidata()
        self.assertEqual(str(page.params['title']), 'Douglas_Adams')

        self.assertTrue('requests' not in page.data)
Exemple #5
0
    def test_wikidata_init(self):
        page = wptools.wikidata('TEST', silent=SILENT_FLAG)
        self.assertEqual(page.params, {'lang': 'en', 'title': 'TEST'})

        page = wptools.wikidata(wikibase='Q42', silent=SILENT_FLAG)
        self.assertEqual(page.params, {'lang': 'en', 'wikibase': 'Q42'})

        page = wptools.wikidata()
        try:
            page.get_wikidata()
            self.fail("failed to raise LookupError")
        except LookupError:
            pass

        try:
            page.wanted_labels('TEST')
            self.fail("failed to raise ValueError")
        except ValueError:
            pass

        self.assertTrue('requests' not in page.data)
Exemple #6
0
    def test_wikidata_deleted(self):
        page = wptools.wikidata(skip=SKIP_FLAG, silent=SILENT_FLAG)

        page.cache = {'wikidata': wikidata_deleted.cache}

        try:
            page._set_data('wikidata')
            self.fail("failed to raise LookupError")
        except LookupError:
            pass

        self.assertTrue('requests' not in page.data)
Exemple #7
0
    def test_wikidata_get_wanted(self):
        page = wptools.wikidata('TEST', skip=SKIP_FLAG)
        page.wanted_labels(['P31', 'Q5'])

        page.cache = {'wikidata': wikidata.cache}
        page._set_data('wikidata')

        page.cache['labels'] = labels_wanted.cache
        page._set_data('labels')

        page._post_labels_updates()

        data = page.data
        self.assertEqual(len(data['wikidata']), 1)
        self.assertTrue('instance of (P31)' in data['wikidata'])
Exemple #8
0
    def test_wikidata_get_claims(self):
        page = wptools.wikidata(silent=True)
        page.cache['wikidata'] = wikidata.cache
        page.cache['claims'] = claims.cache
        page._set_data('wikidata')
        page._set_data('claims')

        data = page.data

        self.assertEqual(len(data['claims']), 11)
        self.assertEqual(len(data['properties']), 10)
        self.assertEqual(str(data['what']), 'human')
        self.assertEqual(str(data['wikidata']['genre']),
                         'comic science fiction')
        self.assertTrue('Mostly Harmless' in data['wikidata']['work'])
Exemple #9
0
    def test_wikidata_missing(self):
        page = wptools.wikidata(skip=SKIP_FLAG, silent=SILENT_FLAG)

        page.cache = {'wikidata': wikidata.cache}
        page._set_data('wikidata')

        del page.data['claims']['P31']

        page.cache['labels'] = labels_wanted.cache
        page._set_data('labels')
        page._post_labels_updates()

        self.assertTrue('requests' not in page.data)

        data = page.data
        self.assertTrue('what' not in data['wikidata'])
Exemple #10
0
    def test_wikidata_get_labels(self):
        page = wptools.wikidata(skip=SKIP_FLAG, silent=SILENT_FLAG)
        page.cache = {'labels': labels_1.cache, 'wikidata': wikidata.cache}

        page._set_data('wikidata')
        page._set_data('labels')
        page._post_labels_updates()

        data = page.data
        self.assertEqual(len(data['claims']), 102)
        self.assertEqual(len(data['labels']), 50)
        self.assertEqual(len(data['wikidata']), 27)

        page.get_labels()  # No entities found

        self.assertTrue('requests' not in page.data)
Exemple #11
0
    def test_wikidata_get_wikidata(self):
        page = wptools.wikidata(silent=True)
        page.cache['wikidata'] = wikidata.cache
        page._set_data('wikidata')

        data = page.data

        self.assertEqual(len(data['claims']), 11)
        self.assertEqual(len(data['properties']), 10)
        self.assertEqual(len(data['wikidata']), 10)
        self.assertEqual(data['description'], 'English writer and humorist')
        self.assertEqual(data['image'][0]['kind'], 'wikidata-image')
        self.assertEqual(data['label'], 'Douglas Adams')
        self.assertEqual(str(data['title']), 'Douglas_Adams')
        self.assertEqual(str(data['wikibase']), 'Q42')
        self.assertTrue('wikidata' in data['modified'])
        self.assertTrue(data['wikidata_url'].endswith('Q42'))
        self.assertTrue(str(data['wikidata']['birth']).startswith('+1952'))
Exemple #12
0
    def test_wikidata_image(self):
        """
        ensure we don't add wikidata-image if file info extant
        """
        page = wptools.wikidata(skip=SKIP_FLAG, silent=SILENT_FLAG)

        page.cache = {'wikidata': wikidata.cache}
        page._set_data('wikidata')

        page.data['image'] = [{'file': 'Douglas adams portrait cropped.jpg'}]

        page.cache['labels'] = labels_2.cache  # P18 in here
        page._set_data('labels')
        page._post_labels_updates()

        self.assertTrue('requests' not in page.data)

        data = page.data
        self.assertTrue(len(data['image']), 1)
        self.assertTrue('wikidata-image' not in data['image'])
Exemple #13
0
 def test_wikidata_no_value_snak(self):
     page = wptools.wikidata(skip=SKIP_FLAG, silent=SILENT_FLAG)
     page.cache = {'wikidata': wikidata_novalue_snak.cache}
     page._set_data('wikidata')
     self.assertEqual(len(page.data['claims']), 2)
Exemple #14
0
    def test_wikidata_init(self):
        page = wptools.wikidata('TEST', silent=True)
        self.assertEqual(page.params, {'lang': 'en', 'title': 'TEST'})

        page = wptools.wikidata(wikibase='Q42', silent=True)
        self.assertEqual(page.params, {'lang': 'en', 'wikibase': 'Q42'})