This paste expires on 2023-08-14 16:58:06.018995. Repaste, or download this paste. . Pasted through web.

# Function
    def identify(self, file) -> bool:
        """ Identifiyes if given file is a MyEdenred JSON file
        The file must be named myendeenred-*.json to ben open
        The card number and holder must match the Class Initialized Ones
        Returns
        -------
        Bool if the file is valied
        """
        if re.match("my_edenred_file.*.json", os.path.basename(file.name)):
            with open(file.name, "r") as my_edenred_file:
                try:
                    json_data = json.load(my_edenred_file)
                    
                    account_data = json_data["data"]["account"]
                    if account_data["cardNumber"] == self.card_number and account_data["cardHolderFirstName"] == self.card_holder:
                        print("File {f}, matches card number {c}".format(
                            f = file.name,
                            c = self.card_number
                        ))
                        return True
                except json.JSONDecodeError as error:
                    print("Not a valid json:", error)
        return False
# Test
def test_identify_header_file(tmp_file):
    importer = MyEdenredImporter(card_number = card_number, card_holder = card_holder)
    dumb_importer = MyEdenredImporter(card_number = 17278787989898, card_holder = "Ze Berto")
    tmp_file.write_text(
        dedent(
            """
            {
                "data": {
                    "account": {
                        "iban": null,
                        "cardNumber": "6368250092183460",
                        "availableBalance": 135.15,
                        "cardHolderFirstName": "CATIA VALE",
                        "cardHolderLastName": "WESTRAGS LDA",
                        "cardActivated": true
                    },
                }
            }
            """
        ).strip()
    )
    with tmp_file.open() as file:
        assert not dumb_importer.identify(file)
        assert importer.identify(file)
# Error
test/test_MyEdenrend.py::test_identify_not_correct PASSED
test/test_MyEdenrend.py::test_identify_header_file FAILED
===================================================== FAILURES =====================================================
____________________________________________ test_identify_header_file _____________________________________________
tmp_file = PosixPath('/tmp/pytest-of-masterkorp/pytest-2/test_identify_header_file0/myedenred20230806.json')
    def test_identify_header_file(tmp_file):
        importer = MyEdenredImporter(card_number = card_number, card_holder = card_holder)
        dumb_importer = MyEdenredImporter(card_number = 17278787989898, card_holder = "Ze Berto")
        tmp_file.write_text(
            dedent(
                """
                {
                    "data": {
                        "account": {
                            "iban": null,
                            "cardNumber": "6368250092183460",
                            "availableBalance": 135.15,
                            "cardHolderFirstName": "CATIA VALE",
                            "cardHolderLastName": "WESTRAGS LDA",
                            "cardActivated": true
                        },
                    }
                }
                """
            ).strip()
        )
        with tmp_file.open() as file:
            assert not dumb_importer.identify(file)
>           assert importer.identify(file)
E           AssertionError: assert False
E            +  where False = <bound method MyEdenredImporter.identify of <importers.myedenred.MyEdenredImporter object at 0x7f7b1ce45890>>(<_io.TextIOWrapper name='/tmp/pytest-of-masterkorp/pytest-2/test_identify_header_file0/myedenred20230806.json' mode='r' encoding='UTF-8'>)
E            +    where <bound method MyEdenredImporter.identify of <importers.myedenred.MyEdenredImporter object at 0x7f7b1ce45890>> = <importers.myedenred.MyEdenredImporter object at 0x7f7b1ce45890>.identify
test/test_MyEdenrend.py:60: AssertionError
============================================= short test summary info ==============================================
FAILED test/test_MyEdenrend.py::test_identify_header_file - AssertionError: assert False
=========================================== 1 failed, 8 passed in 0.53s ============================================
task: Failed to run task "test": exit status 1
Filename: None. Size: 4kb. View raw, , hex, or download this file.