def test_serialize_volunteer(self): project = Project(volunteername='B. Smith', volunteerhomestate='ID') result = api._serialize_volunteer(project) self.assertEqual(result['name'], 'B. Smith') self.assertEqual(result['homestate'], 'ID') self.assertEqual(result['picture'], None) project.volunteerpicture = Media() project.volunteerpicture.file = Mock() project.volunteerpicture.file.url = 'urlhere' result = api._serialize_volunteer(project) self.assertEqual(result['name'], 'B. Smith') self.assertEqual(result['homestate'], 'ID') self.assertEqual(result['picture'], 'urlhere')
def test_serialize(self): country = Country(name='Awesomeland') account = Account() project = Project(account=account, country=country) pd = api.ProjectDetail() result = pd.serialize(project) self.assertEqual(result['title'], '') self.assertEqual(result['tagline'], None) self.assertEqual(result['country'], 'Awesomeland') self.assertEqual(result['featured_image'], None) project.title = 'SomeTitle' project.tagline = 'SomeTagline' project.featured_image = Media() project.featured_image.file = Mock() project.featured_image.file.url = 'urlhere' result = pd.serialize(project) self.assertEqual(result['title'], 'SomeTitle') self.assertEqual(result['tagline'], 'SomeTagline') self.assertEqual(result['featured_image'], 'urlhere')
def test_serialize_account(self): account = Account() project = Project(account=account) result = api._serialize_account(project) self.assertEqual(result['goal'], None) self.assertEqual(result['community_contribution'], None) self.assertEqual(result['total_donated'], 0) self.assertEqual(result['total_raised'], 0) self.assertEqual(result['total_cost'], 0) self.assertEqual(result['percent_raised'], 0) self.assertEqual(result['percent_community'], 0) self.assertEqual(result['remaining'], 0) self.assertEqual(result['funded'], False) account.goal = 2400 account.community_contribution = 600 account.current = 900 result = api._serialize_account(project) self.assertEqual(result['goal'], 2400) self.assertEqual(result['community_contribution'], 600) self.assertEqual(result['total_donated'], 900) self.assertEqual(result['total_raised'], 1500) self.assertEqual(result['total_cost'], 3000) self.assertEqual(result['percent_raised'], 50) self.assertEqual(result['percent_community'], 20) self.assertEqual(result['remaining'], 1500) self.assertEqual(result['funded'], False) account.current = 2400 result = api._serialize_account(project) self.assertEqual(result['total_donated'], 2400) self.assertEqual(result['total_raised'], 3000) self.assertEqual(result['percent_raised'], 100) self.assertEqual(result['remaining'], 0) self.assertEqual(result['funded'], True)
def create_pcpp(account, row, issue_map): """Create and save a project (and account). This is a bit more complex for projects, which have goal amounts, etc.""" country_name = row['LOCATION'] country = Country.objects.filter(name__iexact=country_name).first() if not country: logging.getLogger('peacecorps.sync_accounting').warning( "%s: Country does not exist: %s", row['PROJ_NO'], row['LOCATION']) issue = issue_map.find(row['SECTOR']) if not issue and row['SECTOR'] != 'None': logging.getLogger('peacecorps.sync_accounting').warning( "%s: Sector does not exist: %s", row['PROJ_NO'], row['SECTOR']) if country and (issue or row['SECTOR'] == 'None'): set_balances(row, account) account.save() volunteername = row['PCV_NAME'] if volunteername.startswith(row['STATE']): volunteername = volunteername[len(row['STATE']):].strip() summary = clean_description(row['SUMMARY']) sirtrevorobj = {"data": [{"type": "text", "data": {"text": summary}}]} description = json.dumps(sirtrevorobj) project = Project(title=row['PROJ_NAME1'], country=country, account=account, volunteername=volunteername, volunteerhomestate=row['STATE'], description=description) if issue: project.overflow = issue.account project.save() project.campaigns.add(issue) else: project.save()
def create_pcpp(account, row, issue_map): """Create and save a project (and account). This is a bit more complex for projects, which have goal amounts, etc.""" country_name = row['LOCATION'] country = Country.objects.filter(name__iexact=country_name).first() if not country: logging.getLogger('peacecorps.sync_accounting').warning( "%s: Country does not exist: %s", row['PROJ_NO'], row['LOCATION']) issue = issue_map.find(row['SECTOR']) if not issue and row['SECTOR'] != 'None': logging.getLogger('peacecorps.sync_accounting').warning( "%s: Sector does not exist: %s", row['PROJ_NO'], row['SECTOR']) if country and (issue or row['SECTOR'] == 'None'): goal = cents_from(row['PROJ_REQ']) balance = cents_from(row['UNIDENT_BAL']) account.current = goal - balance account.goal = goal account.community_contribution = cents_from(row['OVERS_PART'] or '0') account.save() volunteername = row['PCV_NAME'] if volunteername.startswith(row['STATE']): volunteername = volunteername[len(row['STATE']):].strip() summary = clean_description(row['SUMMARY']) sirtrevorobj = {"data": [{"type": "text", "data": {"text": summary}}]} description = json.dumps(sirtrevorobj) project = Project( title=row['PROJ_NAME1'], country=country, account=account, volunteername=volunteername, volunteerhomestate=row['STATE'], description=description ) if issue: project.overflow = issue.account project.save() project.campaigns.add(issue) else: project.save()