| |
@@ -7,12 +7,14 @@
|
| |
|
| |
from blockerbugs import db
|
| |
from blockerbugs import app
|
| |
+ from blockerbugs.models.milestone import Milestone
|
| |
from blockerbugs.models.bug import Bug
|
| |
from blockerbugs.models.userinfo import UserInfo
|
| |
from testing.test_controllers import add_release, add_milestone, \
|
| |
add_bug, add_update
|
| |
from blockerbugs.controllers.api import api, errors
|
| |
- from blockerbugs.controllers.api.api import _get_bugtypes, _UNKNOWN_BUG_SVG_TEXT, _BUG_CLOSED
|
| |
+ from blockerbugs.controllers.api.api import _get_bugtypes, _get_pretty_milestone_name, \
|
| |
+ _UNKNOWN_BUG_SVG_TEXT, _BUG_CLOSED
|
| |
from blockerbugs.util import pagure_bot
|
| |
|
| |
|
| |
@@ -22,6 +24,8 @@
|
| |
db.session.rollback()
|
| |
db.drop_all()
|
| |
db.create_all()
|
| |
+ s = db.session()
|
| |
+ s.expire_on_commit = False # avoid LazyLoading error, https://docs.sqlalchemy.org/en/14/errors.html#error-bhk3
|
| |
cls.client = app.test_client()
|
| |
cls.release = add_release(99)
|
| |
cls.milestone = add_milestone(cls.release, 'final', 100, 101,
|
| |
@@ -40,6 +44,9 @@
|
| |
bug2 = add_bug(9002, 'testbug2', cls.milestone)
|
| |
bug2.accepted_blocker = False
|
| |
bug2.proposed_fe = True
|
| |
+ bug2copy = add_bug(9002, 'testbug2', cls.milestone2) # different milestone than bug2
|
| |
+ bug2copy.accepted_blocker = False
|
| |
+ bug2copy.proposed_fe = True
|
| |
bug3 = add_bug(9003, 'testbug3', cls.milestone)
|
| |
bug3.accepted_blocker = False
|
| |
bug3.proposed_fe = True
|
| |
@@ -173,7 +180,8 @@
|
| |
|
| |
bug2 = db.session.query(Bug).filter_by(bugid = 9002).first()
|
| |
|
| |
- assert self.milestone.name in data
|
| |
+ pretty_name = _get_pretty_milestone_name(bug2)
|
| |
+ assert pretty_name in data
|
| |
for bugtype in _get_bugtypes(bug2):
|
| |
assert bugtype in data
|
| |
|
| |
@@ -194,6 +202,23 @@
|
| |
|
| |
assert _BUG_CLOSED not in data
|
| |
|
| |
+ def test_get_bugimg_multiple_milestones_sorted(self):
|
| |
+ url = '/api/v0/bugimg/9002'
|
| |
+ resp = self.client.get(url)
|
| |
+ assert resp.status_code == httplib.OK
|
| |
+ data = str(resp.data)
|
| |
+
|
| |
+ beta_milestone = db.session.query(Milestone).filter_by(version = 'beta').first()
|
| |
+ bug2beta = db.session.query(Bug).filter_by(bugid = 9002, milestone = beta_milestone).first()
|
| |
+
|
| |
+ final_milestone = db.session.query(Milestone).filter_by(version = 'final').first()
|
| |
+ bug2final = db.session.query(Bug).filter_by(bugid = 9002, milestone = final_milestone).first()
|
| |
+
|
| |
+ pretty_name_beta = _get_pretty_milestone_name(bug2beta)
|
| |
+ pretty_name_final = _get_pretty_milestone_name(bug2final)
|
| |
+
|
| |
+ assert data.index(pretty_name_beta) < data.index(pretty_name_final)
|
| |
+
|
| |
def test_get_bugimg_closed_bug(self):
|
| |
url = '/api/v0/bugimg/9000'
|
| |
resp = self.client.get(url)
|
| |
@@ -208,8 +233,10 @@
|
| |
assert resp.status_code == httplib.OK
|
| |
data = str(resp.data)
|
| |
|
| |
- assert '99-beta' in data
|
| |
- assert '99-final' in data
|
| |
+ bugs = db.session.query(Bug).filter_by(bugid = 9003).all()
|
| |
+
|
| |
+ for bug in bugs:
|
| |
+ assert _get_pretty_milestone_name(bug) in data
|
| |
assert _BUG_CLOSED not in data
|
| |
|
| |
# === /api/v0/webhook ===
|
| |
"F37 Beta" instead of "37-beta"
milestones are sorted instead of a random order
fix for #247