From b50226781cac09bc080d731ddc71124859f64f87 Mon Sep 17 00:00:00 2001 From: GesielFreitas Date: Oct 31 2017 18:38:04 +0000 Subject: [PATCH 1/4] "Including the homepage attribute in the package class and adding rule to save the same when fetcher is the anitya" Signed-off-by: Danmoura17 Signed-off-by: GesielFreitas --- diff --git a/kiskadee/model.py b/kiskadee/model.py index 81fe42c..6aa3233 100644 --- a/kiskadee/model.py +++ b/kiskadee/model.py @@ -20,6 +20,7 @@ class Package(Base): id = Column(Integer, Sequence('packages_id_seq', optional=True), primary_key=True) name = Column(Unicode(255), nullable=False) + homepage = Column(Unicode(255), nullable=True) fetcher_id = Column(Integer, ForeignKey('fetchers.id'), nullable=False) versions = orm.relationship('Version', backref='packages') __table_args__ = ( diff --git a/kiskadee/monitor.py b/kiskadee/monitor.py index b8694cb..693efbb 100644 --- a/kiskadee/monitor.py +++ b/kiskadee/monitor.py @@ -50,6 +50,7 @@ class Monitor: while RUNNING: self.kiskadee_queue = kiskadee_queue pkg = self.dequeue_package() + if pkg: self._send_to_runner(pkg) time.sleep(2) @@ -104,7 +105,6 @@ class Monitor: def _save_analyzed_pkg(self, pkg): if not pkg: return {} - _package = ( self._query(Package) .filter(Package.name == pkg['name']).first() @@ -139,8 +139,16 @@ class Monitor: return None def _save_pkg(self, pkg): - _package = Package(name=pkg['name'], - fetcher_id=pkg['fetcher_id']) + _fetcher = self.session.query(Fetcher)\ + .filter(Fetcher.id == pkg['fetcher_id']).first() + if _fetcher.name == "anitya": + _package = Package(name=pkg['name'], + homepage=pkg['meta']['homepage'], + fetcher_id=pkg['fetcher_id']) + else: + _package = Package(name=pkg['name'], + fetcher_id=pkg['fetcher_id']) + self.session.add(_package) self.session.commit() _version = Version(number=pkg['version'], From 2a8aad5b67fbe043b8695fa3658cc178af82e2b2 Mon Sep 17 00:00:00 2001 From: gesielsf Date: Oct 31 2017 18:38:04 +0000 Subject: [PATCH 2/4] "Tests unit of save homepage in database of fetcher anitya" Signed-off-by: danmoura17 Signed-off-by: gesielsf --- diff --git a/kiskadee/tests/test_monitor.py b/kiskadee/tests/test_monitor.py index 57512b4..2a759fa 100644 --- a/kiskadee/tests/test_monitor.py +++ b/kiskadee/tests/test_monitor.py @@ -7,6 +7,7 @@ from kiskadee.queue import packages_queue from kiskadee.model import Package, Fetcher, create_analyzers, Report, Analysis import kiskadee.queue import kiskadee.fetchers.debian +import kiskadee.fetchers.anitya from kiskadee.database import Database @@ -46,6 +47,17 @@ class MonitorTestCase(unittest.TestCase): 'cppcheck': '<>', 'flawfinder': '><'}, 'fetcher_id': 1} + self.pkg4 = {'name': 'urlanitya', + 'version': '0.11', + 'fetcher': kiskadee.fetchers.anitya, + 'meta': { + 'backend': 'gitHub', + 'homepage': 'https://github.com/GesielFreitas/Cros' + }, + 'results': { + 'cppcheck': '<>', + 'flawfinder': '><'}, + 'fetcher_id': 1} self.analysis = { 'analyzer_id': 1, 'id': 1, @@ -162,6 +174,17 @@ class MonitorTestCase(unittest.TestCase): self.assertEqual(self.pkg1['version'], _first_version) self.assertEqual(_pkg['version'], _current_version) + def test_save_package_anitya(self): + self.monitor._save_fetcher(kiskadee.fetchers.anitya.Fetcher()) + packages_queue.put(self.pkg4) + + _pkg = self.monitor.dequeue_package() + self.monitor._save_analyzed_pkg(_pkg) + + _pkgs = self.monitor.session.query(Package).all() + self.assertEqual(len(_pkgs), 1) + self.assertEqual(_pkgs[0].homepage, _pkg['meta']['homepage']) + if __name__ == '__main__': unittest.main() From dc7641fddb37b0147030314f8c5e63cd6d265904 Mon Sep 17 00:00:00 2001 From: gesielsf Date: Oct 31 2017 18:38:04 +0000 Subject: [PATCH 3/4] Correction in save package for generic analyzer of the homepage package Signed-off-by: damnoura17 Signed-off-by: adailson Signed-off-by: gesielsf --- diff --git a/kiskadee/monitor.py b/kiskadee/monitor.py index 693efbb..7f0a1b0 100644 --- a/kiskadee/monitor.py +++ b/kiskadee/monitor.py @@ -139,12 +139,11 @@ class Monitor: return None def _save_pkg(self, pkg): - _fetcher = self.session.query(Fetcher)\ - .filter(Fetcher.id == pkg['fetcher_id']).first() - if _fetcher.name == "anitya": - _package = Package(name=pkg['name'], - homepage=pkg['meta']['homepage'], - fetcher_id=pkg['fetcher_id']) + + if ('meta' in pkg) and ('homepage' in pkg['meta']): + _package = Package(name=pkg['name'], + homepage=pkg['meta']['homepage'], + fetcher_id=pkg['fetcher_id']) else: _package = Package(name=pkg['name'], fetcher_id=pkg['fetcher_id'])