Skip to content

Commit

Permalink
Add tests, some better output, pytest and mock requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
grobolom committed Jun 14, 2017
1 parent dda38d8 commit 1fb56ff
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 2 deletions.
2 changes: 2 additions & 0 deletions scrounger/app/db/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ def save_new_prs(new_prs):

db.session.commit()

return len(new_prs.values())


def get_new_prs(url, headers):
new_prs = {}
Expand Down
4 changes: 2 additions & 2 deletions scrounger/app/scrounger.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ def update():

new_prs = get_new_prs(url, headers)
drop_existing_prs()
save_new_prs(new_prs)
total = save_new_prs(new_prs)

return 'success'
return 'updated {} prs'.format(total) , 200


@app.route('/healthcheck')
Expand Down
85 changes: 85 additions & 0 deletions scrounger/app/tests/test_graphql.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import json

from app.graphql import flatten_response

GRAPHQL_RESPONSE = """
{
"data": {
"organization" : {
"repositories": {
"nodes": [
{
"name": "some-repo",
"pullRequests" : {
"nodes": [
{
"title": "some-title",
"updatedAt": "some-timestamp",
"url": "some-url",
"author": {
"login": "some-login",
"avatarUrl": "some-avatar-url"
},
"assignees": {
"nodes": [
{
"login": "some-other-login",
"avatarUrl": "some-other-avatar-url"
}
]
},
"reviewRequests": {
"nodes": [
{
"login": "some-third-login",
"avatarUrl": "some-third-avatar-url"
}
]
},
"labels": {
"nodes": [
{
"name": "some-label"
},
{
"name": "some-other-label"
}
]
}
}
]
}
}
]
}
}
}
}
"""

EXPECTED_RESULT = {
"some-title": {
"title": "some-title",
"repo_name": "some-repo",
"updated_at": "some-timestamp",
"html_url": "some-url",
"user": {
"login": "some-login",
"avatar_url": "some-avatar-url",
},
"labels": [
{ "name": "some-label" },
{ "name": "some-other-label" }
],
"assignees": [
{
"login": "some-other-login",
"avatar_url": "some-other-avatar-url",
},
],
},
}

def test_flatten_response():
response = json.loads(GRAPHQL_RESPONSE)
assert flatten_response(response) == EXPECTED_RESULT
5 changes: 5 additions & 0 deletions scrounger/requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-r requirements.txt

mock
pytest
pytest-watch

0 comments on commit 1fb56ff

Please sign in to comment.