Skip to content

Commit 474b297

Browse files
committed
Fix CI broken tests
This fixes few tests that were broken on CI, mainly related to GDPR changes made to Atlassian Cloud. Change-Id: I0fb7877a6a5f8a4dfc54755bdbf75193c892727f
1 parent 397db5d commit 474b297

File tree

4 files changed

+27
-25
lines changed

4 files changed

+27
-25
lines changed

cspell.json

+2
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@
183183
".eggs"
184184
],
185185
"ignoreWords": [
186+
"AACCOUNTID",
187+
"GDPR",
186188
"I18NSPHINXOPTS",
187189
"hdost",
188190
"βρέθηκε"

jira/client.py

+15-10
Original file line numberDiff line numberDiff line change
@@ -3323,23 +3323,28 @@ def backup_download(self, filename=None):
33233323
return None
33243324

33253325
def current_user(self):
3326-
"""Returns the username of the current user.
3326+
"""Returns the username or account-id of the current user. For anonymous
3327+
users it will return a value that evaluates as False.
33273328
33283329
:rtype: str
33293330
"""
3330-
if not hasattr(self, '_serverInfo') or 'username' not in self._serverInfo:
3331+
if not hasattr(self, '_myself'):
33313332

3332-
url = self._get_url('serverInfo')
3333+
url = self._get_url('myself')
33333334
r = self._session.get(url, headers=self._options['headers'])
33343335

33353336
r_json = json_loads(r)
3336-
if 'x-ausername' in r.headers:
3337-
r_json['username'] = r.headers['x-ausername']
3338-
else:
3339-
r_json['username'] = None
3340-
self._serverInfo = r_json
3337+
self._myself = r_json
3338+
print(r_json, r.headers)
3339+
# if 'X-AACCOUNTID' in r.headers:
3340+
# r_json['username'] = r.headers['X-AACCOUNTID']
3341+
# elif 'x-ausername' in r.headers:
3342+
# r_json['username'] = r.headers['x-ausername']
3343+
# else:
3344+
# r_json['username'] = None
33413345
# del r_json['self'] # this isn't really an addressable resource
3342-
return self._serverInfo['username']
3346+
print(self._myself)
3347+
return self._myself['name']
33433348

33443349
def delete_project(self, pid):
33453350
"""Delete project from Jira.
@@ -3469,7 +3474,7 @@ def create_project(self, key, name=None, assignee=None, type="Software", templat
34693474
'projectTemplateWebItemKey': template_key,
34703475
'projectTemplateModuleKey': template_key,
34713476
'lead': assignee,
3472-
# 'assigneeType': '2',
3477+
'assigneeType': 'PROJECT_LEAD',
34733478
}
34743479

34753480
if self._version[0] > 6:

tests/test_client.py

+6-11
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
from __future__ import unicode_literals
33
import getpass
44
import pytest
5+
from tenacity import retry
6+
from tenacity import wait_random_exponential
57
from tests import get_unique_project_name
68
from tests import JiraTestManager
7-
import time
89

910
from jira import Role, Issue, JIRA, JIRAError, Project # noqa
1011
import jira.client
@@ -56,22 +57,16 @@ def remove_by_slug():
5657
return slug
5758

5859

59-
@pytest.mark.timeout(180)
60+
@retry(wait=wait_random_exponential(multiplier=1, max=180))
6061
def test_delete_project(cl_admin, cl_normal, slug):
61-
for i in range(6):
62-
time.sleep(1) # with <=5s was failing often
6362

64-
with pytest.raises(ValueError) as ex:
65-
assert cl_normal.delete_project(slug)
63+
with pytest.raises(JIRAError) as ex:
64+
assert cl_normal.delete_project(slug)
6665

6766
assert 'Not enough permissions to delete project' in str(ex.value) \
6867
or str(ex.value).endswith('is not a Project, projectID or slug')
6968

70-
try:
71-
assert cl_admin.delete_project(slug)
72-
except Exception as e:
73-
e.message += " slug=%s" % slug
74-
raise
69+
assert cl_admin.delete_project(slug)
7570

7671

7772
def test_delete_inexistent_project(cl_admin):

tests/tests.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def __init__(self):
179179
else:
180180
self.jira_admin = JIRA(self.CI_JIRA_URL, validate=True,
181181
logging=False, max_retries=self.max_retries)
182-
if self.jira_admin.current_user() != self.CI_JIRA_ADMIN:
182+
if not self.jira_admin.current_user():
183183
self.initialized = 1
184184
sys.exit(3)
185185

@@ -543,13 +543,13 @@ def test_3_update(self):
543543

544544
component = self.jira.create_component(name,
545545
self.project_b, description='stand by!',
546-
leadUserName=self.test_manager.CI_JIRA_ADMIN)
546+
leadUserName=self.jira.current_user())
547547
name = 'renamed-' + name
548548
component.update(name=name, description='It is done.',
549-
leadUserName=self.test_manager.CI_JIRA_ADMIN)
549+
leadUserName=self.jira.current_user())
550550
self.assertEqual(component.name, name)
551551
self.assertEqual(component.description, 'It is done.')
552-
self.assertEqual(component.lead.name, self.test_manager.CI_JIRA_ADMIN)
552+
self.assertEqual(component.lead.name, self.jira.current_user())
553553
component.delete()
554554

555555
def test_4_delete(self):

0 commit comments

Comments
 (0)