def test_should_return_false__and_message_if_no_weight_is_provided(self): data = [[ 'RegionName', 'DistrictName', 'CountyName', 'Selection Probability' ], ['region1', 'district1', 'county1', '']] self.write_to_csv('wb', data) _file = open(self.filename, 'rb') rtype = LocationType.objects.create(name="region", slug='region') dtype = LocationType.objects.create(name="district", slug='district', parent=rtype) ctype = LocationType.objects.create(name="county", slug='county', parent=dtype) region = Location.objects.create(name="region1", type=rtype) district = Location.objects.create(name="district1", parent=region, type=dtype) Location.objects.create(name="county1", parent=district, type=ctype) uploader = UploadLocationWeights(_file) uploader.upload(self.survey) error_log = UploadErrorLog.objects.filter(model=self.uploader.MODEL, filename=self.filename) self.assertEqual(1, error_log.count()) self.failUnless( error_log.filter(row_number=1, error='Selection probability must be a number.'))
def test_should_return_true__and_success_message_if_valid_csv_provided( self): data = [[ 'RegionName', 'DistrictName', 'CountyName', 'Selection Probability' ], ['region1', 'district1', 'county1', '0.02']] self.write_to_csv('wb', data) _file = open(self.filename, 'rb') region = Location.objects.create(name="region1") district = Location.objects.create(name="district1", tree_parent=region) Location.objects.create(name="county1", tree_parent=district) region = Location.objects.create(name="region2") district = Location.objects.create(name="district2", tree_parent=region) Location.objects.create(name="county2", tree_parent=district) uploader = UploadLocationWeights(_file) uploader.upload(self.survey) error_log = UploadErrorLog.objects.filter(model=self.uploader.MODEL, filename=self.filename) self.failIf( error_log.filter(row_number=1, error='Selection probability must be a number.')) self.failUnless( LocationWeight.objects.filter(location__name=data[1][2], selection_probability=data[1][3]))
def setUp(self): self.data = [[ 'RegionName', 'DistrictName', 'CountyName', 'Selection Probability' ], ['region1', 'district1', 'county1', '0.01'], ['region2', 'district2', 'county2', '0.1']] self.write_to_csv('wb', self.data) self.filename = 'test.csv' _file = open(self.filename, 'rb') self.uploader = UploadLocationWeights(_file) self.survey = Survey.objects.create(name="Survey A")
def test_not_csv_file(self): LocationWeight.objects.all().delete() self.filename = 'not_csv.xls' self.generate_non_csv_file(self.filename) file = open(self.filename, 'rb') uploader = UploadLocationWeights(file) uploader.upload(self.survey) error_log = UploadErrorLog.objects.filter(model=self.uploader.MODEL, filename=self.filename) self.failUnless( error_log.filter( error= 'Location weights not uploaded. %s is not a valid csv file.' % self.filename)) self.failIf(LocationWeight.objects.all())
def test_should_return_false__and_message_if_location_is_blank(self): data = [[ 'RegionName', 'DistrictName', 'CountyName', 'Selection Probability' ], ['region1', 'district1', '', '0.2']] self.write_to_csv('wb', data) _file = open(self.filename, 'rb') region = Location.objects.create(name="region1") district = Location.objects.create(name="district1", tree_parent=region) Location.objects.create(name="county1", tree_parent=district) uploader = UploadLocationWeights(_file) uploader.upload(self.survey) error_log = UploadErrorLog.objects.filter(model=self.uploader.MODEL, filename=self.filename) self.assertEqual(1, error_log.count()) self.failUnless( error_log.filter( row_number=1, error='There is no county with name: , in district1.'))