Skip to content

Commit

Permalink
Add test for pull_request.py
Browse files Browse the repository at this point in the history
Part of #9
  • Loading branch information
javatarz committed Oct 13, 2019
1 parent 0c7cdc9 commit e10e469
Show file tree
Hide file tree
Showing 8 changed files with 516 additions and 5 deletions.
4 changes: 4 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ verify_ssl = true

[dev-packages]
autopep8 = "*"
pytest = "*"

[packages]
requests = "*"
flask = "*"
flask-jsonpify = "*"
flask-restful = "*"

[requires]
python_version = "3.7"
193 changes: 192 additions & 1 deletion Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions client/models/pull_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ def score(self) -> int:
def _self_pr_score(self) -> int:
if self._merged:
return 5
elif self._state == 'closed':
return 1
elif self.is_spam():
return -10
elif self._state == 'closed':
return 1
elif self._state == 'open':
return 1
else:
Expand All @@ -38,10 +38,10 @@ def _self_pr_score(self) -> int:
def _pr_score(self) -> int:
if self._merged:
return 10
elif self._state == 'closed':
return 3
elif self.is_spam():
return -5
elif self._state == 'closed':
return 3
elif self._state == 'open':
return 1
else:
Expand Down
Empty file added client_test/__init__.py
Empty file.
Empty file added client_test/models/__init__.py
Empty file.
25 changes: 25 additions & 0 deletions client_test/models/empty_pr_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"issues_data": {
"pull_request": {
"html_url": ""
},
"state": "",
"labels": [],
"created_at": ""
},
"pr_data": {
"base": {
"repo": {
"owner": {
"login": ""
}
}
},
"head": {
"user": {
"login": ""
}
},
"merged": true
}
}
60 changes: 60 additions & 0 deletions client_test/models/pr_test_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import json
import copy


class PRData:
def __init__(self, data: dict = None):
if data == None:
with open('./client_test/models/empty_pr_data.json') as file:
self.data = json.load(file)
else:
self.data = data

def with_pr_url(self, url: str = 'some-url'):
data = copy.deepcopy(self.data)
data['issues_data']['pull_request']['html_url'] = url
return PRData(data)

def with_label(self, label_to_add: str = None):
data = copy.deepcopy(self.data)
if label_to_add == None:
label_number = len(data["issues_data"]["labels"]) + 1
label_to_add = f'label-{label_number}'

data['issues_data']['labels'].append({'name': label_to_add})
return PRData(data)

def with_created_at(self, created_at: str = '2014-04-24T16:34:47Z'):
data = copy.deepcopy(self.data)
data['issues_data']['created_at'] = created_at
return PRData(data)

def with_owner(self, owner: str = 'owner_user_id'):
data = copy.deepcopy(self.data)
data['pr_data']['base']['repo']['owner']['login'] = owner
return PRData(data)

def with_pr_raised_by(self, pr_raised_by: str = 'pr_raised_by_user_id'):
data = copy.deepcopy(self.data)
data['pr_data']['head']['user']['login'] = pr_raised_by
return PRData(data)

def with_merged(self, merged=False):
data = copy.deepcopy(self.data)
data['pr_data']['merged'] = merged
return PRData(data)

def with_state(self, state='some_state'):
data = copy.deepcopy(self.data)
data['issues_data']['state'] = state
return PRData(data)

def with_defaults(self):
return PRData(self.data).with_pr_url()\
.with_label()\
.with_label()\
.with_created_at()\
.with_owner()\
.with_pr_raised_by()\
.with_merged()\
.with_state()
Loading

0 comments on commit e10e469

Please sign in to comment.