示例#1
0
    def test_pay_owing_to_awards(self):
        """
        Breakdown of the calendar monthly paid employees totals.

        """
        _, funct = MWSSTransformer.ops()["171"]
        return_value = funct("171", {"171": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("171", {"171": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("171", {"171": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("171", {"171": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["172"]
        return_value = funct("172", {"172": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("172", {"172": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("172", {"172": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("172", {"172": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["173"]
        return_value = funct("173", {"173": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("173", {"173": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("173", {"173": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("173", {"173": "-19200.49"}, 0)
        self.assertEqual(0, return_value)
    def test_image_sequence_number(self):
        """
        Test image sequence number returns as expected

        """
        response = {
            "survey_id": "134",
            "tx_id": "27923934-62de-475c-bc01-433c09fd38b8",
            "collection": {
                "instrument_id": "0005",
                "period": "201704"
            },
            "metadata": {
                "user_id": "123456789",
                "ru_ref": "12345678901A"
            },
            "submitted_at": "2017-04-12T13:01:26Z",
            "data": {"something": "some data", "something else": "some other data"}
        }
        seq_nr = 12345

        transformer = MWSSTransformer(response, seq_nr=seq_nr)
        transformer.create_zip(img_seq=itertools.count())

        funct = next(i for i in transformer.image_transformer.zip.get_filenames() if os.path.splitext(i)[1] == ".csv")
        bits = os.path.splitext(funct)[0].split("_")

        self.assertEqual(seq_nr, int(bits[-1]))
    def test_gross_calendar_pay(self):
        """
        Total gross calendar monthly pay

        """
        _, funct = MWSSTransformer.ops()["151"]
        return_value = funct("151", {"151": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("151", {"151": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("151", {"151": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("151", {"151": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["152"]
        return_value = funct("152", {"152": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("152", {"152": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("152", {"152": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("152", {"152": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["153"]
        return_value = funct("153", {"153": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("153", {"153": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("153", {"153": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("153", {"153": "-19200.49"}, 0)
        self.assertEqual(0, return_value)
    def test_original_response_is_stored(self):
        """Compare the dictionary loaded from the zip file json is the same as that submitted"""
        expected_json_data = {
            "survey_id": "134",
            "tx_id": "27923934-62de-475c-bc01-433c09fd38b8",
            "collection": {
                "instrument_id": "0005",
                "period": "201704"
            },
            "metadata": {
                "user_id": "123456789",
                "ru_ref": "12345678901A"
            },
            "submitted_at": "2017-04-12T13:01:26Z",
            "data": {"something": "some data", "something else": "some other data"}
        }
        seq_nr = 12345

        transformer = MWSSTransformer(expected_json_data, seq_nr=seq_nr)
        transformer.create_zip(img_seq=itertools.count())

        z = zipfile.ZipFile(transformer.image_transformer.zip.in_memory_zip)
        zfile = z.open('EDC_QJson/134_12345.json', 'r')
        actual_json_data = json.loads(zfile.read().decode('utf-8'))
        z.close()

        self.assertEqual(actual_json_data, expected_json_data)
示例#5
0
    def test_percentage_increase_new_pay_rates(self):
        """
        Breakdown of percentage increase pay rates

        """
        _, funct = MWSSTransformer.ops()["200"]
        return_value = funct("200", {"200w5": "1600"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": "19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": "19200.5"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": "-19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": ""}, 0)
        self.assertEqual(False, return_value)

        _, funct = MWSSTransformer.ops()["200"]
        return_value = funct("200", {"200w4": "1600"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w4": "19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w4": "19200.5"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w4": "-19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": ""}, 0)
        self.assertEqual(False, return_value)
    def test_pay_owing_to_awards(self):
        """
        Breakdown of the calendar monthly paid employees totals.

        """
        _, funct = MWSSTransformer.ops()["171"]
        return_value = funct("171", {"171": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("171", {"171": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("171", {"171": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("171", {"171": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["172"]
        return_value = funct("172", {"172": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("172", {"172": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("172", {"172": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("172", {"172": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["173"]
        return_value = funct("173", {"173": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("173", {"173": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("173", {"173": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("173", {"173": "-19200.49"}, 0)
        self.assertEqual(0, return_value)
    def test_pay_bonus_commission_annual_profit(self):
        """
        Breakdown of the calendar monthly paid employees totals.

        """
        _, funct = MWSSTransformer.ops()["181"]
        return_value = funct("181", {"181": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("181", {"181": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("181", {"181": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("181", {"181": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["182"]
        return_value = funct("182", {"182": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("182", {"182": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("182", {"182": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("182", {"182": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["173"]
        return_value = funct("173", {"173": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("173", {"173": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("173", {"173": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("173", {"173": "-19200.49"}, 0)
        self.assertEqual(0, return_value)
示例#8
0
    def test_pay_bonus_commission_annual_profit(self):
        """
        Breakdown of the calendar monthly paid employees totals.

        """
        _, funct = MWSSTransformer.ops()["181"]
        return_value = funct("181", {"181": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("181", {"181": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("181", {"181": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("181", {"181": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["182"]
        return_value = funct("182", {"182": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("182", {"182": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("182", {"182": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("182", {"182": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["173"]
        return_value = funct("173", {"173": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("173", {"173": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("173", {"173": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("173", {"173": "-19200.49"}, 0)
        self.assertEqual(0, return_value)
示例#9
0
    def test_gross_calendar_pay(self):
        """
        Total gross calendar monthly pay

        """
        _, funct = MWSSTransformer.ops()["151"]
        return_value = funct("151", {"151": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("151", {"151": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("151", {"151": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("151", {"151": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["152"]
        return_value = funct("152", {"152": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("152", {"152": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("152", {"152": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("152", {"152": "-19200.49"}, 0)
        self.assertEqual(0, return_value)

        _, funct = MWSSTransformer.ops()["153"]
        return_value = funct("153", {"153": "1600"}, 0)
        self.assertEqual(1600, return_value)
        return_value = funct("153", {"153": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("153", {"153": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("153", {"153": "-19200.49"}, 0)
        self.assertEqual(0, return_value)
    def test_percentage_increase_new_pay_rates(self):
        """
        Breakdown of percentage increase pay rates

        """
        _, funct = MWSSTransformer.ops()["200"]
        return_value = funct("200", {"200w5": "1600"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": "19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": "19200.5"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": "-19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": ""}, 0)
        self.assertEqual(False, return_value)

        _, funct = MWSSTransformer.ops()["200"]
        return_value = funct("200", {"200w4": "1600"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w4": "19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w4": "19200.5"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w4": "-19200.49"}, 0)
        self.assertEqual(True, return_value)
        return_value = funct("200", {"200w5": ""}, 0)
        self.assertEqual(False, return_value)
示例#11
0
    def test_aggregate_fourweekly_changes(self):
        """
        question_id 190w4 used for fourweekly changes question; aggregates to 190.

        """
        return_value = MWSSTransformer.transform({"190w4": ""})
        self.assertIs(False, return_value["190"])
        return_value = MWSSTransformer.transform({"190w4": "No"})
        self.assertIs(False, return_value["190"])
        return_value = MWSSTransformer.transform({"190w4": "Yes"})
        self.assertIs(True, return_value["190"])
示例#12
0
    def test_aggregate_fiveweekly_changes(self):
        """
        question_id 190w5 used for fiveweekly changes question; aggregates to 190.

        """
        return_value = MWSSTransformer.transform({"190w5": ""})
        self.assertFalse(return_value["190"])
        return_value = MWSSTransformer.transform({"190w5": "No"})
        self.assertFalse(return_value["190"])
        return_value = MWSSTransformer.transform({"190w5": "Yes"})
        self.assertTrue(return_value["190"])
    def test_aggregate_fourweekly_changes(self):
        """
        question_id 190w4 used for fourweekly changes question; aggregates to 190.

        """
        return_value = MWSSTransformer.transform({"190w4": ""})
        self.assertIs(False, return_value["190"])
        return_value = MWSSTransformer.transform({"190w4": "No"})
        self.assertIs(False, return_value["190"])
        return_value = MWSSTransformer.transform({"190w4": "Yes"})
        self.assertIs(True, return_value["190"])
    def test_aggregate_fiveweekly_changes(self):
        """
        question_id 190w5 used for fiveweekly changes question; aggregates to 190.

        """
        return_value = MWSSTransformer.transform({"190w5": ""})
        self.assertFalse(return_value["190"])
        return_value = MWSSTransformer.transform({"190w5": "No"})
        self.assertFalse(return_value["190"])
        return_value = MWSSTransformer.transform({"190w5": "Yes"})
        self.assertTrue(return_value["190"])
示例#15
0
    def test_digits_to_onetwo(self):
        """
        Test question value in question range return as boolean

        """
        digits_ingested_as_bools = [100, 120, 200, 220]
        for question_range in digits_ingested_as_bools:
            question_id = str(question_range)
            with self.subTest(question_range=question_range, question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "64"})
                self.assertIs(True, return_value[question_id])
                self.assertEqual(1, CSFormatter._pck_value(return_value[question_id]))
                return_value = MWSSTransformer.transform({question_id: ""})
                self.assertEqual(2, CSFormatter._pck_value(return_value[question_id]))
    def test_digits_to_onetwo(self):
        """
        Test question value in question range return as boolean

        """
        digits_ingested_as_bools = [100, 120, 200, 220]
        for question_range in digits_ingested_as_bools:
            question_id = str(question_range)
            with self.subTest(question_range=question_range, question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "64"})
                self.assertIs(True, return_value[question_id])
                self.assertEqual(1, CSFormatter._pck_value(return_value[question_id]))
                return_value = MWSSTransformer.transform({question_id: ""})
                self.assertEqual(2, CSFormatter._pck_value(return_value[question_id]))
示例#17
0
    def test_dates_to_onetwo(self):
        """
        Test dates in question range are returned as boolean

        """
        dates_ingested_as_bools = [110, 210]
        for question_range in dates_ingested_as_bools:
            question_id = str(question_range)
            with self.subTest(question_range=question_range, question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "23/4/2017"})
                self.assertEqual([datetime.date(2017, 4, 23)], return_value[question_id])
                self.assertEqual(1, CSFormatter._pck_value(return_value[question_id]))
                return_value = MWSSTransformer.transform({question_id: ""})
                self.assertEqual([], return_value[question_id])
                self.assertEqual(2, CSFormatter._pck_value(return_value[question_id]))
    def test_dates_to_onetwo(self):
        """
        Test dates in question range are returned as boolean

        """
        dates_ingested_as_bools = [110, 210]
        for question_range in dates_ingested_as_bools:
            question_id = str(question_range)
            with self.subTest(question_range=question_range, question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "23/4/2017"})
                self.assertEqual([datetime.date(2017, 4, 23)], return_value[question_id])
                self.assertEqual(1, CSFormatter._pck_value(return_value[question_id]))
                return_value = MWSSTransformer.transform({question_id: ""})
                self.assertEqual([], return_value[question_id])
                self.assertEqual(2, CSFormatter._pck_value(return_value[question_id]))
    def test_pck_from_transformed_data(self):
        """
        Test package from transformer returned data correctly

        """
        src = pkg_resources.resource_string(__name__, "replies/eq-mwss.json")
        reply = json.loads(src.decode("utf-8"))
        reply["tx_id"] = "27923934-62de-475c-bc01-433c09fd38b8"
        reply["survey_id"] = "134"
        reply["collection"]["period"] = "200911"
        reply["metadata"]["ru_ref"] = "49900001225C"
        ids = Survey.identifiers(reply, batch_nr=3866, seq_nr=0)
        data = MWSSTransformer.transform(
            OrderedDict([
                ("40", 2),
                ("140", 124),
                ("151", 217222)
            ])
        )
        id_dict = ids._asdict()
        return_value = CSFormatter._pck_lines(data, id_dict["inst_id"], id_dict["ru_ref"], id_dict["ru_check"],
                                              id_dict["period"])
        self.assertEqual([
            "FV          ",
            "0005:49900001225C:200911",
            "0040 00000000002",
            "0130 00000000002",
            "0131 00000000002",
            "0132 00000000002",
            "0140 00000000124",
            "0151 00000217222",
        ], return_value)
示例#20
0
    def test_aggregate_fiveweekly_increase(self):
        """
        Increase in fiveweekly pay (200w5); aggregated with monthly increase (200).

        """
        return_value = MWSSTransformer.transform({"200w5": "25"})
        self.assertIs(True, return_value["200"])
    def test_aggregate_fiveweekly_increase(self):
        """
        Increase in fiveweekly pay (200w5); aggregated with monthly increase (200).

        """
        return_value = MWSSTransformer.transform({"200w5": "25"})
        self.assertIs(True, return_value["200"])
示例#22
0
    def test_pck_from_transformed_data(self):
        """
        Test package from transformer returned data correctly

        """
        f = open(self.replies_dir + "eq-mwss.json", "r")
        reply = json.loads(f.read())
        f.close()
        reply["tx_id"] = "27923934-62de-475c-bc01-433c09fd38b8"
        reply["survey_id"] = "134"
        reply["collection"]["period"] = "200911"
        reply["metadata"]["ru_ref"] = "49900001225C"
        ids = Survey.identifiers(reply, batch_nr=3866, seq_nr=0)
        data = MWSSTransformer.transform(
            OrderedDict([
                ("40", 2),
                ("140", 124),
                ("151", 217222)
            ])
        )
        id_dict = ids._asdict()
        return_value = CSFormatter._pck_lines(data, id_dict["inst_id"], id_dict["ru_ref"], id_dict["ru_check"],
                                              id_dict["period"])
        self.assertEqual([
            "FV          ",
            "0005:49900001225C:200911",
            "0040 00000000002",
            "0130 00000000002",
            "0131 00000000002",
            "0132 00000000002",
            "0140 00000000124",
            "0151 00000217222",
        ], return_value)
    def test_aggregate_fortnightly_bonuses(self):
        """
        Fortnightly holiday pay (60f), arrears of pay (70f) and bonuses (80f)
        are divided by 2 and added to question_id 60, 70, 80 respectively.

        """
        _, funct = MWSSTransformer.ops()["60"]
        return_value = funct("60", {"60f": "360"}, 0)
        self.assertEqual(180, return_value)
        return_value = funct("60", {"60": "4600", "60f": "360"}, 0)
        self.assertEqual(4780, return_value)
        return_value = funct("60", {"60": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("60", {"60": "19200.5", "60f": "1600.5"}, 0)
        self.assertEqual(20001, return_value)
        return_value = funct("60", {"60": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("60", {"60": "19200.02", "60f": "1600.02"}, 0)
        self.assertEqual(20000, return_value)

        _, funct = MWSSTransformer.ops()["70"]
        return_value = funct("70", {"70f": "1280"}, 0)
        self.assertEqual(640, return_value)
        return_value = funct("70", {"70": "7360", "70f": "1280"}, 0)
        self.assertEqual(8000, return_value)
        return_value = funct("70", {"70": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("70", {"70": "19200.5", "70f": "1600.5"}, 0)
        self.assertEqual(20001, return_value)
        return_value = funct("70", {"70": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("70", {"70": "19200.02", "70f": "1600.02"}, 0)
        self.assertEqual(20000, return_value)

        _, funct = MWSSTransformer.ops()["80"]
        return_value = funct("80", {"80f": "5000"}, 0)
        self.assertEqual(2500, return_value)
        return_value = funct("80", {"80": "15000", "80f": "5000"}, 0)
        self.assertEqual(17500, return_value)
        return_value = funct("80", {"80": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("80", {"80": "19200.5", "80f": "1600.5"}, 0)
        self.assertEqual(20001, return_value)
        return_value = funct("80", {"80": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("80", {"80": "19200.02", "80f": "1600.02"}, 0)
        self.assertEqual(20000, return_value)
示例#24
0
    def test_aggregate_fortnightly_bonuses(self):
        """
        Fortnightly holiday pay (60f), arrears of pay (70f) and bonuses (80f)
        are divided by 2 and added to question_id 60, 70, 80 respectively.

        """
        _, funct = MWSSTransformer.ops()["60"]
        return_value = funct("60", {"60f": "360"}, 0)
        self.assertEqual(180, return_value)
        return_value = funct("60", {"60": "4600", "60f": "360"}, 0)
        self.assertEqual(4780, return_value)
        return_value = funct("60", {"60": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("60", {"60": "19200.5", "60f": "1600.5"}, 0)
        self.assertEqual(20001, return_value)
        return_value = funct("60", {"60": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("60", {"60": "19200.02", "60f": "1600.02"}, 0)
        self.assertEqual(20000, return_value)

        _, funct = MWSSTransformer.ops()["70"]
        return_value = funct("70", {"70f": "1280"}, 0)
        self.assertEqual(640, return_value)
        return_value = funct("70", {"70": "7360", "70f": "1280"}, 0)
        self.assertEqual(8000, return_value)
        return_value = funct("70", {"70": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("70", {"70": "19200.5", "70f": "1600.5"}, 0)
        self.assertEqual(20001, return_value)
        return_value = funct("70", {"70": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("70", {"70": "19200.02", "70f": "1600.02"}, 0)
        self.assertEqual(20000, return_value)

        _, funct = MWSSTransformer.ops()["80"]
        return_value = funct("80", {"80f": "5000"}, 0)
        self.assertEqual(2500, return_value)
        return_value = funct("80", {"80": "15000", "80f": "5000"}, 0)
        self.assertEqual(17500, return_value)
        return_value = funct("80", {"80": "19200.5"}, 0)
        self.assertEqual(19201, return_value)
        return_value = funct("80", {"80": "19200.5", "80f": "1600.5"}, 0)
        self.assertEqual(20001, return_value)
        return_value = funct("80", {"80": "19200.49"}, 0)
        self.assertEqual(19200, return_value)
        return_value = funct("80", {"80": "19200.02", "80f": "1600.02"}, 0)
        self.assertEqual(20000, return_value)
示例#25
0
    def test_defaults_empty(self):
        """
        Tests default values are empty

        """
        return_value = MWSSTransformer.transform({})
        self.assertIsInstance(return_value, OrderedDict)
        self.assertEqual([str(i) for i in (130, 131, 132)], list(return_value.keys()))
示例#26
0
    def test_weekly_increase(self):
        """
        Increase in weekly pay (100).

        """
        _, funct = MWSSTransformer.ops()["100"]
        return_value = funct("100", {"100": "6.0"}, 0)
        self.assertEqual(6, return_value)
    def test_defaults_empty(self):
        """
        Tests default values are empty

        """
        return_value = MWSSTransformer.transform({})
        self.assertIsInstance(return_value, OrderedDict)
        self.assertEqual([str(i) for i in (130, 131, 132)], list(return_value.keys()))
    def test_aggregate_fourweekly_increase_employees(self):
        """
        Employees with increase in fourweekly pay (220w4);
        aggregated with monthly increase (220).

        """
        return_value = MWSSTransformer.transform({"220w4": "25"})
        self.assertIs(True, return_value["220"])
    def test_weekly_increase(self):
        """
        Increase in weekly pay (100).

        """
        _, funct = MWSSTransformer.ops()["100"]
        return_value = funct("100", {"100": "6.0"}, 0)
        self.assertEqual(6, return_value)
示例#30
0
    def test_aggregate_fourweekly_increase_employees(self):
        """
        Employees with increase in fourweekly pay (220w4);
        aggregated with monthly increase (220).

        """
        return_value = MWSSTransformer.transform({"220w4": "25"})
        self.assertIs(True, return_value["220"])
示例#31
0
    def test_unsigned(self):
        """
        Test unsigned integer value

        """
        return_value = MWSSTransformer.transform({"40": "33"})
        self.assertEqual(33, return_value["40"])
        item = CSFormatter._pck_item("40", return_value["40"])
        self.assertEqual(item, "0040 00000000033")
示例#32
0
    def test_aggregate_fiveweekly_increase_date(self):
        """
        Date of increase in fiveweekly pay (210w5); aggregated with monthly (210).

        """
        return_value = MWSSTransformer.transform({"210w5": "2017-01-11"})
        self.assertEqual(1, len(return_value["210"]))
        self.assertEqual(11, return_value["210"][0].day)
        self.assertEqual(1, return_value["210"][0].month)
示例#33
0
 def test_imputed_zero_values_fiveweekly(self):
     """
     Breakdown figures (173, 183) are imputed with zero when the respondent
     has confirmed the total (153) is zero.
     """
     return_value = MWSSTransformer.transform({"d153": "Yes"})
     self.assertEqual(0, return_value["153"])
     self.assertEqual(0, return_value["173"])
     self.assertEqual(0, return_value["183"])
    def test_defaults_with_data(self):
        """
        Tests default values are populated

        """
        return_value = MWSSTransformer.transform({"40": "33"})
        self.assertIsInstance(return_value, OrderedDict)
        self.assertEqual(33, return_value["40"])
        self.assertEqual(4, len(return_value))
示例#35
0
    def test_currency(self):
        """
        Test currency value

        """
        return_value = MWSSTransformer.transform({"50": "36852"})
        self.assertEqual(36852, return_value["50"])
        item = CSFormatter._pck_item("50", return_value["50"])
        self.assertEqual(item, "0050 00000036852")
    def test_currency(self):
        """
        Test currency value

        """
        return_value = MWSSTransformer.transform({"50": "36852"})
        self.assertEqual(36852, return_value["50"])
        item = CSFormatter._pck_item("50", return_value["50"])
        self.assertEqual(item, "0050 00000036852")
示例#37
0
 def test_imputed_zero_values_monthly(self):
     """
     Breakdown figures (171, 181) are imputed with zero when the respondent
     has confirmed the total (151) is zero.
     """
     return_value = MWSSTransformer.transform({"d151": "Yes"})
     self.assertEqual(0, return_value["151"])
     self.assertEqual(0, return_value["171"])
     self.assertEqual(0, return_value["181"])
 def test_imputed_zero_values_monthly(self):
     """
     Breakdown figures (171, 181) are imputed with zero when the respondent
     has confirmed the total (151) is zero.
     """
     return_value = MWSSTransformer.transform({"d151": "Yes"})
     self.assertEqual(0, return_value["151"])
     self.assertEqual(0, return_value["171"])
     self.assertEqual(0, return_value["181"])
 def test_imputed_zero_values_fiveweekly(self):
     """
     Breakdown figures (173, 183) are imputed with zero when the respondent
     has confirmed the total (153) is zero.
     """
     return_value = MWSSTransformer.transform({"d153": "Yes"})
     self.assertEqual(0, return_value["153"])
     self.assertEqual(0, return_value["173"])
     self.assertEqual(0, return_value["183"])
示例#40
0
    def test_defaults_with_data(self):
        """
        Tests default values are populated

        """
        return_value = MWSSTransformer.transform({"40": "33"})
        self.assertIsInstance(return_value, OrderedDict)
        self.assertEqual(33, return_value["40"])
        self.assertEqual(4, len(return_value))
    def test_aggregate_fiveweekly_increase_date(self):
        """
        Date of increase in fiveweekly pay (210w5); aggregated with monthly (210).

        """
        return_value = MWSSTransformer.transform({"210w5": "2017-01-11"})
        self.assertEqual(1, len(return_value["210"]))
        self.assertEqual(11, return_value["210"][0].day)
        self.assertEqual(1, return_value["210"][0].month)
    def test_unsigned(self):
        """
        Test unsigned integer value

        """
        return_value = MWSSTransformer.transform({"40": "33"})
        self.assertEqual(33, return_value["40"])
        item = CSFormatter._pck_item("40", return_value["40"])
        self.assertEqual(item, "0040 00000000033")
示例#43
0
    def test_aggregate_weekly_comments(self):
        """
        question_id 300w, 300f, 300m, 300w4 & 300w5; all aggregated as 300.

        """
        for question_id in ("300w", "300f", "300m", "300w4", "300w5"):
            with self.subTest(question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "This is a comment"})
                self.assertEqual(True, return_value["300"])
                self.assertEqual(4, len(return_value))
    def test_aggregate_weekly_paid_employees(self):
        """
        question_id 40, 40f are added to give a value for weekly paid employees (40).

        """
        _, funct = MWSSTransformer.ops()["40"]
        return_value = funct("40", {"40": "125000"}, 0)
        self.assertEqual(125000, return_value)
        return_value = funct("40", {"40": "125000", "40f": "25000"}, 0)
        self.assertEqual(150000, return_value)
 def test_imputed_zero_values_weekly_and_fortnightly(self):
     """
     Breakdown figures (60, 70, 80) are imputed with zero when the respondent
     has confirmed the totals (50, 50f) are zero.
     """
     return_value = MWSSTransformer.transform({"d50": "Yes", "d50f": "Yes"})
     self.assertEqual(0, return_value["50"])
     self.assertEqual(0, return_value["60"])
     self.assertEqual(0, return_value["70"])
     self.assertEqual(0, return_value["80"])
示例#46
0
    def test_aggregate_monthly_paid_employees(self):
        """
        question_id 140m, 140w4, 140w5 are added to give a value for monthly paid employees (140).

        """
        for question_id in ("140m", "140w4", "140w5"):
            with self.subTest(question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "25"})
                self.assertEqual(25, return_value["140"])
                self.assertEqual(4, len(return_value))
示例#47
0
 def test_imputed_zero_values_weekly_and_fortnightly(self):
     """
     Breakdown figures (60, 70, 80) are imputed with zero when the respondent
     has confirmed the totals (50, 50f) are zero.
     """
     return_value = MWSSTransformer.transform({"d50": "Yes", "d50f": "Yes"})
     self.assertEqual(0, return_value["50"])
     self.assertEqual(0, return_value["60"])
     self.assertEqual(0, return_value["70"])
     self.assertEqual(0, return_value["80"])
    def test_aggregate_weekly_comments(self):
        """
        question_id 300w, 300f, 300m, 300w4 & 300w5; all aggregated as 300.

        """
        for question_id in ("300w", "300f", "300m", "300w4", "300w5"):
            with self.subTest(question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "This is a comment"})
                self.assertEqual(True, return_value["300"])
                self.assertEqual(4, len(return_value))
    def test_aggregate_monthly_paid_employees(self):
        """
        question_id 140m, 140w4, 140w5 are added to give a value for monthly paid employees (140).

        """
        for question_id in ("140m", "140w4", "140w5"):
            with self.subTest(question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "25"})
                self.assertEqual(25, return_value["140"])
                self.assertEqual(4, len(return_value))
示例#50
0
    def test_aggregate_weekly_paid_employees(self):
        """
        question_id 40, 40f are added to give a value for weekly paid employees (40).

        """
        _, funct = MWSSTransformer.ops()["40"]
        return_value = funct("40", {"40": "125000"}, 0)
        self.assertEqual(125000, return_value)
        return_value = funct("40", {"40": "125000", "40f": "25000"}, 0)
        self.assertEqual(150000, return_value)
示例#51
0
    def test_aggregate_fortnightly_increase_date(self):
        """
        Date of increase in Fortnightly pay (110f); aggregated with weekly (110).

        """
        _, funct = MWSSTransformer.ops()["110"]
        return_value = funct(
            "110", {"110": "2017-01-09", "110f": "2017-01-11"}, datetime.date.today(),
        )
        self.assertEqual(9, return_value[0].day)
        self.assertEqual(11, return_value[1].day)
    def test_aggregate_fiveweekly_increase_date(self):
        """
        Date of increase in fiveweekly pay (210w5); aggregated with monthly (210).

        """
        _, funct = MWSSTransformer.ops()["210"]
        return_value = funct(
            "210", {"210": "2017-01-09", "210w5": "2017-01-11"}, datetime.date.today(),
        )
        self.assertEqual(9, return_value[0].day)
        self.assertEqual(11, return_value[1].day)
    def test_aggregate_monthly_paid_employees(self):
        """
        question_id 140m, 140w4, 140w5 are added to give a value for monthly paid employees (140).

        """
        _, funct = MWSSTransformer.ops()["140"]
        return_value = funct("140", {"140w4": "125000"}, 0)
        self.assertEqual(125000, return_value)
        for question_id in ("140m", "140w4", "140w5"):
            return_value = funct("140", {"140": "125000", question_id: "25000"}, 0)
            self.assertEqual(150000, return_value)
示例#54
0
    def test_aggregate_fiveweekly_increase_date(self):
        """
        Date of increase in fiveweekly pay (210w5); aggregated with monthly (210).

        """
        _, funct = MWSSTransformer.ops()["210"]
        return_value = funct(
            "210", {"210": "2017-01-09", "210w5": "2017-01-11"}, datetime.date.today(),
        )
        self.assertEqual(9, return_value[0].day)
        self.assertEqual(11, return_value[1].day)
示例#55
0
    def test_aggregate_monthly_paid_employees(self):
        """
        question_id 140m, 140w4, 140w5 are added to give a value for monthly paid employees (140).

        """
        _, funct = MWSSTransformer.ops()["140"]
        return_value = funct("140", {"140w4": "125000"}, 0)
        self.assertEqual(125000, return_value)
        for question_id in ("140m", "140w4", "140w5"):
            return_value = funct("140", {"140": "125000", question_id: "25000"}, 0)
            self.assertEqual(150000, return_value)
    def test_aggregate_fortnightly_increase_date(self):
        """
        Date of increase in Fortnightly pay (110f); aggregated with weekly (110).

        """
        _, funct = MWSSTransformer.ops()["110"]
        return_value = funct(
            "110", {"110": "2017-01-09", "110f": "2017-01-11"}, datetime.date.today(),
        )
        self.assertEqual(9, return_value[0].day)
        self.assertEqual(11, return_value[1].day)
示例#57
0
    def test_unsigned_decimals(self):
        """
        Test unsigned decimal value

        """
        digits_ingested_as_bools = [100, 200]
        for question_range in digits_ingested_as_bools:
            question_id = str(question_range)
            with self.subTest(question_range=question_range, question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "64.0"})
                self.assertIs(True, return_value[question_id])
                self.assertEqual(1, CSFormatter._pck_value(return_value[question_id]))
    def test_unsigned_decimals(self):
        """
        Test unsigned decimal value

        """
        digits_ingested_as_bools = [100, 200]
        for question_range in digits_ingested_as_bools:
            question_id = str(question_range)
            with self.subTest(question_range=question_range, question_id=question_id):
                return_value = MWSSTransformer.transform({question_id: "64.0"})
                self.assertIs(True, return_value[question_id])
                self.assertEqual(1, CSFormatter._pck_value(return_value[question_id]))
示例#59
0
    def test_aggregate_fiveweekly_changes(self):
        """
        question_id 190w5 used for fiveweekly changes question; aggregates to 190.

        """
        _, funct = MWSSTransformer.ops()["190"]
        return_value = funct("190", {"190w5": ""}, True)
        self.assertFalse(return_value)
        return_value = funct("190", {"190w5": "No"}, True)
        self.assertFalse(return_value)
        return_value = funct("190", {"190w5": "Yes"}, False)
        self.assertTrue(return_value)
示例#60
0
    def test_aggregate_weekly_comments(self):
        """
        question_id 300w, 300f, 300m, 300w4 & 300w5; all aggregated as 300.

        """
        _, funct = MWSSTransformer.ops()["300"]
        for question_id in ("300w", "300f", "300m", "300w4", "300w5"):
            with self.subTest(question_id=question_id):
                return_value = funct("300", {question_id: "Single comment"}, "")
                self.assertEqual("Single comment", return_value)
                return_value = funct("300", {"300": "First comment", question_id: "Second comment"}, "")
                self.assertEqual(["First comment", "Second comment"], return_value.splitlines())