def test_legal_single_1524(self): """ Test the function get_top_states with the Case : Legal Occupations, Single status, 15 - 24 years old. """ result = ranking.get_top_states("1ad", "Legal Occupations", "single_1524", 4, 4, 4, 4, professionptn='None') Montana = {'crimerank': 3296.1, 'professionrank': '41398.96', 'marRank': 16, 'livingrank': 31} California = {'crimerank': 4048.1, 'professionrank': '96417.76', 'marRank': 168, 'livingrank': 47} Ohio = {'crimerank': 3885.8, 'professionrank': '65523.52', 'marRank': 128, 'livingrank': 16} # tests if the returned object is a List print "Testing if returns a list" self.assertIsInstance(result, list, "The object is not an instance of class List") # tests if the returned list has 50 elements print "Testing if the returned list contains 50 elements" self.assertEqual(len(result), 50, "The list must have 50 items on it") my_keys = [u'crimerank', u'professionrank', 'Total', u'median_household_income', u'name', u'a_mean', 'marRank', u'id', u'number_households', u'totalmarital', 'personalprofession', 'professionptn', u'livingrank', 'criRank', 'LivRank', 'profRank', u'jobs_1000', u'percapita_income', 'rate', u'population'] for item in result: # tests if the returned list has all the columns on it self.assertListEqual(item.keys(), my_keys, "All the items should have all the keys") for key, value in item.iteritems(): # tests that all the values not null self.assertGreaterEqual(value, 0, "All values must be filled") if (item['name'] == 'Montana'): # tests the calculations for Montana self.assertEqual(item['crimerank'], Montana['crimerank'], "The rank is different"+str(item['crimerank'])+" - "+ str(Montana['crimerank'])) self.assertEqual(item['professionrank'], Montana['professionrank'], "The Profession rank is different"+str(item['professionrank'])+" - "+ str(Montana['professionrank'])) self.assertEqual(item['marRank'], Montana['marRank'], "The Marital rank is different"+str(item['marRank'])+" - "+ str(Montana['marRank'])) self.assertEqual(item['livingrank'], Montana['livingrank'], "The Living rank is different"+str(item['livingrank'])+" - "+ str(Montana['livingrank'])) if (item['name'] == 'California'): # tests the calculations for California self.assertEqual(item['crimerank'], California['crimerank'], "The rank is different"+str(item['crimerank'])+" - "+ str(California['crimerank'])) self.assertEqual(item['professionrank'], California['professionrank'], "The Profession rank is different"+str(item['professionrank'])+" - "+ str(California['professionrank'])) self.assertEqual(item['marRank'], California['marRank'], "The Marital rank is different"+str(item['marRank'])+" - "+ str(California['marRank'])) self.assertEqual(item['livingrank'], California['livingrank'], "The Living rank is different"+str(item['livingrank'])+" - "+ str(California['livingrank'])) if (item['name'] == 'Ohio'): # tests the calculations for Ohio self.assertEqual(item['crimerank'], Ohio['crimerank'], "The rank is different"+str(item['crimerank'])+" - "+ str(Ohio['crimerank'])) self.assertEqual(item['professionrank'], Ohio['professionrank'], "The Profession rank is different"+str(item['professionrank'])+" - "+ str(Ohio['professionrank'])) self.assertEqual(item['marRank'], Ohio['marRank'], "The Marital rank is different"+str(item['marRank'])+" - "+ str(Ohio['marRank'])) self.assertEqual(item['livingrank'], Ohio['livingrank'], "The Living rank is different"+str(item['livingrank'])+" - "+ str(Ohio['livingrank']))
def search_states(): """Search the top states with the info in the search form.""" tax = request.args.get("tax") profession = request.args.get("profession") age = request.args.get("age") marital = request.args.get("marital") mstatus = marital + "_" + age wl = int(request.args.get("opcLiving")) wp = int(request.args.get("opcProfession")) wc = int(request.args.get("opcCrime")) wm = int(request.args.get("opcMarital")) professionptn = request.args.get("professionptn") top_states = ranking.get_top_states(tax, profession, mstatus, wl, wp, wc, wm, professionptn.strip()) return jsonify(data=top_states)