Ejemplo n.º 1
0
    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.'))
Ejemplo n.º 2
0
    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]))
Ejemplo n.º 3
0
    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")
Ejemplo n.º 4
0
    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())
Ejemplo n.º 5
0
    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.'))