def test_empty_file(self):
        actual = read_issuer_entries_from_tsv_file(
            f'{FIXTURE_DIRECTORY}/empty_file.tsv',
            encoding='ISO-8859-1'
        )

        expected = []

        self.assertEqual(actual, expected)
    def test2(self):
        actual = read_issuer_entries_from_tsv_file(
            f'{FIXTURE_DIRECTORY}/example2.tsv',
            encoding='ISO-8859-1'
        )

        expected = [
            IssuerEntry('Example Issuer', 'https://example.com/issuer', None, None),
        ]

        self.assertEqual(actual, expected)
    def test_duplicate_iss_values(self):
        actual = read_issuer_entries_from_tsv_file(
            f'{FIXTURE_DIRECTORY}/duplicate_iss_values.tsv',
            encoding='ISO-8859-1'
        )

        ## ensure that last value seen in file is preserved
        expected = [
            IssuerEntry('Example Issuer 2', 'https://example.com/issuer', None, None),
        ]

        self.assertEqual(actual, expected)
    def test1(self):
        actual = read_issuer_entries_from_tsv_file(
            f'{FIXTURE_DIRECTORY}/example1.tsv',
            encoding='ISO-8859-1'
        )

        expected = [
            IssuerEntry('State of California', 'https://myvaccinerecord.cdph.ca.gov/creds', None, None),
            IssuerEntry('State of Louisiana', 'https://healthcardcert.lawallet.com', None, None),
        ]

        self.assertEqual(actual, expected)
def main():

    parser = argparse.ArgumentParser(
        description='Converts a tab delimited file into a compatible JSON file'
    )
    parser.add_argument('input_file', help='TSV file')
    parser.add_argument('output_file', help='JSON file')

    args = parser.parse_args()

    entries_from_tsv = common.read_issuer_entries_from_tsv_file(
        args.input_file, encoding='ISO-8859-1')
    common.write_issuer_entries_to_json_file(args.output_file,
                                             entries_from_tsv)

    entries_from_json = common.read_issuer_entries_from_json_file(
        args.output_file)

    if set(entries_from_tsv) != set(entries_from_json):
        raise Exception('Input and output are not equivalent')