From ecd33b40bbaf91c0ac934dc5c369d561fadd4ce1 Mon Sep 17 00:00:00 2001 From: Lucas Severo Date: Tue, 28 Jun 2016 20:02:21 -0300 Subject: [PATCH] order by popcon as classmethod, and tests Signed-off-by: Lucas Severo Signed-off-by: Lucas Mattioli --- pet/classifier.py | 5 +++-- test/test_classifier.py | 26 ++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/pet/classifier.py b/pet/classifier.py index 02ebdea..2b9c7d0 100644 --- a/pet/classifier.py +++ b/pet/classifier.py @@ -175,7 +175,8 @@ def __init__(self, session, named_trees, nt, bugs.get(nt.source, []), suite_packages.get(nt.source, []), tags.get(nt.package_id, []))) - def order_packages_by_popcon(self, packages): + @classmethod + def order_packages_by_popcon(cls, packages): has_no_popcon = [] packages_queue = PriorityQueue() for package in packages: @@ -198,7 +199,7 @@ def order_packages_by_popcon(self, packages): return ordered_packages def classify(self): - self.packages = self.order_packages_by_popcon(self.packages) + self.packages = Classifier.order_packages_by_popcon(self.packages) classified = dict() for package in self.packages: if package.ready_for_upload: diff --git a/test/test_classifier.py b/test/test_classifier.py index 65c89d5..ced0106 100644 --- a/test/test_classifier.py +++ b/test/test_classifier.py @@ -1,5 +1,13 @@ import unittest import pet.classifier +from pet.classifier import Classifier +import random +import popcon + + +class FakePackage(): + def __init__(self): + self.name = '' class TestPetClassifier(unittest.TestCase): @@ -7,5 +15,19 @@ class TestPetClassifier(unittest.TestCase): def setUp(self): pass - def test_something(self): - pass + def test_classify_popcon(self): + + package_libdigest_md4_perl = FakePackage() + package_libdigest_md4_perl.name = 'libdigest-md4-perl' + package_libsharyanto_utils_perl = FakePackage() + package_libsharyanto_utils_perl.name = 'libsharyanto-utils-perl' + + packages = [package_libdigest_md4_perl, package_libsharyanto_utils_perl] + random.shuffle(packages) + ordered_packages = Classifier.order_packages_by_popcon(packages) + + for i in range(0, len(packages) - 1): + package1 = popcon.package(ordered_packages[i].name) + package2 = popcon.package(ordered_packages[i + 1].name) + self.assertGreaterEqual(package1[ordered_packages[i].name], + package2[ordered_packages[i + 1].name])