def test_read_in_s3(self, mock_requests): mock_requests.return_value.content = ( u'a,b,c\nd,e,\u201c'.encode('utf-8')) data = read_in_s3('fake-s3-url.com') self.assertEqual(mock_requests.call_count, 1) self.assertEqual(data, [{u'a': u'd', u'b': u'e', u'c': u'\u201c'}]) mock_requests.return_value.content = ( u'a,b,c\nd,e,\u201c'.encode('windows-1252')) data = read_in_s3('fake-s3-url.com') self.assertTrue(mock_requests.call_count == 2) self.assertTrue(data == [{u'a': u'd', u'b': u'e', u'c': u'\u201c'}])
def tag_schools(s3_url): """ Sets schools' 'settlement_school' value based on a CSV Assumes the CSV's headings include fields for 'ipeds_unit_id' and 'flag' """ counter = 0 csv_data = read_in_s3(s3_url) if not csv_data[0]: return "ERROR: could not read data from {0}".format(s3_url) headings = csv_data[0].keys() for heading in ['ipeds_unit_id', 'flag']: if heading not in headings: return ("ERROR: CSV doesn't have required fields; " "fields found were {}".format(headings)) initial_flag = csv_data[0]['flag'] for row in csv_data: school = None if row['ipeds_unit_id']: school = get_school(row['ipeds_unit_id']) if school: school.settlement_school = row['flag'] school.save() counter += 1 intro = "school was" if counter == 1 else "schools were" return "{} {} tagged as '{}' settlement schools".format( counter, intro, initial_flag)
def test_read_in_s3_error(self, mock_cdr, mock_requests): mock_requests.return_value.content = ( u'a,b,c\nd,e,\u201c'.encode('utf-8')) mock_cdr.side_effect = TypeError data = read_in_s3('fake-s3-url.com') self.assertEqual(mock_requests.call_count, 1) self.assertEqual(mock_cdr.call_count, 1) self.assertEqual(data, [{}])
def test_read_in_s3_error(self, mock_cdr, mock_requests): mock_requests.return_value.content = ( u'a,b,c\nd,e,\u201c'.encode('utf-8') ) mock_cdr.side_effect = TypeError data = read_in_s3('fake-s3-url.com') self.assertEqual(mock_requests.call_count, 1) self.assertEqual(mock_cdr.call_count, 1) self.assertEqual(data, [{}])
def test_read_in_s3(self, mock_requests): mock_requests.return_value.content = ( u'a,b,c\nd,e,\u201c'.encode('utf-8') ) data = read_in_s3('fake-s3-url.com') self.assertEqual( mock_requests.call_count, 1 ) self.assertEqual( data, [{u'a': u'd', u'b': u'e', u'c': u'\u201c'}] ) mock_requests.return_value.content = ( u'a,b,c\nd,e,\u201c'.encode('windows-1252') ) data = read_in_s3('fake-s3-url.com') self.assertTrue(mock_requests.call_count == 2) self.assertTrue(data == [{u'a': u'd', u'b': u'e', u'c': u'\u201c'}])
def test_read_in_s3(self, mock_requests): mock_requests.return_value.text = ( 'a,b,c\nd,e,\u201c') data = read_in_s3('fake-s3-url.com') self.assertEqual( mock_requests.call_count, 1 ) self.assertEqual( data, [{'a': 'd', 'b': 'e', 'c': '\u201c'}] )