def test_rank(self):
        self.assertEqual(self.claim1.getRank(), 'normal')

        claim = Claim('P134', datatype='wikibase-item')
        claim.setRank('preferred')
        self.assertEqual(claim.getRank(), 'preferred')
        self.assertEqual(claim.rank, 'preferred')
    def test_set_target(self):
        claim = Claim('P144', datatype='wikibase-item')
        self.assertRaises(ValueError, claim.setTarget, "Hello!")

        claim = Claim('P144', datatype='time')
        self.assertRaises(ValueError, claim.setTarget, ItemPage('Q5'))
        self.assertRaises(ValueError, claim.setTarget, "Hello!")
 def test_add_claim(self):
     claim = Claim('P17', datatype='wikibase-item')
     claim.setTarget(ItemPage('Q91'))
     self.item_page.addClaim(claim)
     self.assertIn('P17', self.item_page.claims)
     self.assertEqual(len(self.item_page.claims['P17']), 1)
     self.assertIsInstance(self.item_page.claims['P17'][0], Claim)
    def test_snak_type(self):
        self.assertEqual(self.claim1.snaktype, 'value')
        self.assertRaises(ValueError, self.claim1.setSnakType, 'NULL')
        self.assertRaises(ValueError, self.claim1.setSnakType, None)

        claim = Claim('P31')
        claim.setSnakType('novalue')
        self.assertEqual(claim.snaktype, 'novalue')
        self.assertNotEqual(claim.snaktype, 'value')
    def test_qualifiers(self):
        source = self.claim1.sources[0]['P143'][0]
        self.assertRaises(ValueError, source.has_qualifier, 'P31', 'Q5')

        qualifier = Claim('P31', datatype='wikibase-item')
        qualifier.setTarget(ItemPage('Q5'))
        self.claim1.addQualifier(qualifier)
        self.assertRaises(ValueError, source.addQualifier, qualifier)
        self.assertEqual(self.claim1.qualifiers['P31'][0], qualifier)
        self.assertTrue(qualifier.isQualifier)
        self.assertTrue(self.claim1.has_qualifier('P31', 'Q5'))
        self.assertFalse(self.claim1.has_qualifier('P31', 'Q6'))
        self.assertFalse(self.claim1.has_qualifier('P32', 'Q5'))
    def test_sources(self):
        self.assertIsInstance(self.claim1.sources, list)
        self.assertIsInstance(self.claim1.sources[0], OrderedDict)
        self.assertIn('P143', self.claim1.sources[0])
        self.assertIsInstance(self.claim1.sources[0]['P143'], list)
        self.assertEqual(len(self.claim1.sources), 2)
        self.assertEqual(self.claim1.getSources(), self.claim1.sources)

        sources_copy = self.claim1.sources
        source = Claim('P144', datatype='wikibase-item')
        source.setTarget(ItemPage('Q5'))
        self.claim1.addSource(source)
        self.assertIn('P144', self.claim1.sources[-1])
        self.assertEqual(source, self.claim1.sources[-1]['P144'][0])

        self.claim1.removeSource(source)
        self.assertEqual(self.claim1.sources, sources_copy)