From 28d0ab76e626308b2baa322057d8b8a680185211 Mon Sep 17 00:00:00 2001 From: Daniel Ternyak Date: Wed, 26 Sep 2018 14:35:22 -0500 Subject: [PATCH] Backend Regression Tests (#112) --- backend/grant/proposal/views.py | 4 +- backend/tests/user/test_user_api.py | 57 +++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/backend/grant/proposal/views.py b/backend/grant/proposal/views.py index 7e9c9501..aad1c471 100644 --- a/backend/grant/proposal/views.py +++ b/backend/grant/proposal/views.py @@ -108,7 +108,8 @@ def make_proposal(): display_name = team_member.get("displayName") email_address = team_member.get("emailAddress") title = team_member.get("title") - user = User.query.filter((User.account_address == account_address) | (User.email_address == email_address)).first() + user = User.query.filter( + (User.account_address == account_address) | (User.email_address == email_address)).first() if not user: user = User( account_address=account_address, @@ -130,7 +131,6 @@ def make_proposal(): sm = SocialMedia(social_media_link=social_media.get("link"), user_id=user.id) db.session.add(sm) - proposal.team.append(user) for each_milestone in milestones: diff --git a/backend/tests/user/test_user_api.py b/backend/tests/user/test_user_api.py index 1c677713..ebae51a7 100644 --- a/backend/tests/user/test_user_api.py +++ b/backend/tests/user/test_user_api.py @@ -3,6 +3,7 @@ import json import random from grant.proposal.models import CATEGORIES +from grant.proposal.models import Proposal from grant.user.models import User from ..config import BaseTestConfig @@ -75,6 +76,62 @@ class TestAPI(BaseTestConfig): self.assertEqual(user_db.display_name, proposal_by_email["team"][0]["displayName"]) self.assertEqual(user_db.title, proposal_by_email["team"][0]["title"]) + def test_associate_user_via_proposal_by_email(self): + proposal_by_email = copy.deepcopy(proposal) + del proposal_by_email["team"][0]["accountAddress"] + + self.app.post( + "/api/v1/proposals/", + data=json.dumps(proposal_by_email), + content_type='application/json' + ) + + # User + user_db = User.query.filter_by(email_address=proposal_by_email["team"][0]["emailAddress"]).first() + self.assertEqual(user_db.display_name, proposal_by_email["team"][0]["displayName"]) + self.assertEqual(user_db.title, proposal_by_email["team"][0]["title"]) + proposal_db = Proposal.query.filter_by( + proposal_id=proposal["crowdFundContractAddress"] + ).first() + self.assertEqual(proposal_db.team[0].id, user_db.id) + + def test_associate_user_via_proposal_by_email_when_user_already_exists(self): + proposal_by_email = copy.deepcopy(proposal) + del proposal_by_email["team"][0]["accountAddress"] + + self.app.post( + "/api/v1/proposals/", + data=json.dumps(proposal_by_email), + content_type='application/json' + ) + + # User + user_db = User.query.filter_by(email_address=proposal_by_email["team"][0]["emailAddress"]).first() + self.assertEqual(user_db.display_name, proposal_by_email["team"][0]["displayName"]) + self.assertEqual(user_db.title, proposal_by_email["team"][0]["title"]) + proposal_db = Proposal.query.filter_by( + proposal_id=proposal["crowdFundContractAddress"] + ).first() + self.assertEqual(proposal_db.team[0].id, user_db.id) + + new_proposal_by_email = copy.deepcopy(proposal) + new_proposal_by_email["crowdFundContractAddress"] = "0x2222" + del new_proposal_by_email["team"][0]["accountAddress"] + + self.app.post( + "/api/v1/proposals/", + data=json.dumps(new_proposal_by_email), + content_type='application/json' + ) + + user_db = User.query.filter_by(email_address=new_proposal_by_email["team"][0]["emailAddress"]).first() + self.assertEqual(user_db.display_name, new_proposal_by_email["team"][0]["displayName"]) + self.assertEqual(user_db.title, new_proposal_by_email["team"][0]["title"]) + proposal_db = Proposal.query.filter_by( + proposal_id=proposal["crowdFundContractAddress"] + ).first() + self.assertEqual(proposal_db.team[0].id, user_db.id) + def test_get_all_users(self): self.app.post( "/api/v1/proposals/",