Dachary has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/314743

Change subject: repository: get repositories that have a custom value
......................................................................

repository: get repositories that have a custom value

Add a helper to discard the repositories that have either novalue or
unknown value.

Change-Id: I87531e81ab627adfa47e89af6724982a6d3af9b0
Signed-off-by: Loic Dachary <l...@dachary.org>
---
M FLOSSbot/repository.py
M tests/test_repository.py
2 files changed, 30 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/bots/FLOSSbot 
refs/changes/43/314743/1

diff --git a/FLOSSbot/repository.py b/FLOSSbot/repository.py
index ecdda25..d8ef5a2 100644
--- a/FLOSSbot/repository.py
+++ b/FLOSSbot/repository.py
@@ -141,6 +141,13 @@
         self.info(item, "PREFERRED set to " + http[0].getTarget())
         return True
 
+    def get_source_code_repositories(self, item):
+        claims = []
+        for claim in item.claims.get(self.P_source_code_repository, []):
+            if claim.getTarget() is not None:
+                claims.append(claim)
+        return claims
+
     def fixup_protocol(self, item):
         item.get()
 
diff --git a/tests/test_repository.py b/tests/test_repository.py
index 7f7b28e..bb703c6 100644
--- a/tests/test_repository.py
+++ b/tests/test_repository.py
@@ -93,6 +93,29 @@
             self.r.guess_protocol_from_url('example.org')
             is None)
 
+    def test_get_source_code_repository(self):
+        item = self.r.__getattribute__('Q_' + WikidataHelper.random_name())
+        claim_no_value = pywikibot.Claim(self.r.bot.site,
+                                         self.r.P_source_code_repository,
+                                         'novalue')
+        # the following sequence is wierd but it's the only combo
+        # that works with pywikibot because of some broken
+        # code paths when 'novalue' is set
+        claim_no_value.setTarget('http://url.to.be.ignored')
+        item.addClaim(claim_no_value)
+        claim_no_value.changeTarget(None, 'novalue')
+        claim = pywikibot.Claim(self.r.bot.site,
+                                self.r.P_source_code_repository,
+                                0)
+        url = "http://github.com/ceph/ceph";
+        claim.setTarget(url)
+        item.addClaim(claim)
+        item.get(force=True)
+        repositories = self.r.get_source_code_repositories(item)
+        assert len(repositories) == 1
+        assert repositories[0].getTarget() == url
+        self.r.clear_entity_label(item.getID())
+
     def test_verify_no_value(self):
         item = self.r.__getattribute__('Q_' + WikidataHelper.random_name())
         claim = pywikibot.Claim(self.r.bot.site,

-- 
To view, visit https://gerrit.wikimedia.org/r/314743
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I87531e81ab627adfa47e89af6724982a6d3af9b0
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/bots/FLOSSbot
Gerrit-Branch: master
Gerrit-Owner: Dachary <l...@dachary.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to