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)
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')
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'))
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)
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)
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)
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'])
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'])
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'])
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)
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'))
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'])
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)
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'})