diff --git a/tests/data/contacts.vcf b/tests/data/contacts.vcf index 12a026b..1e872be 100644 --- a/tests/data/contacts.vcf +++ b/tests/data/contacts.vcf @@ -2,4 +2,43 @@ BEGIN:VCARD VERSION:3.0 FN:Sample Contact TEL;TYPE=CELL:+85288888888 -END:VCARD \ No newline at end of file +END:VCARD + +BEGIN:VCARD +VERSION:2.1 +N:Lopez;Yard Lawn Guy;Jose;; +FN:Yard Lawn Guy, Jose Lopez +TEL;HOME:5673334444 +END:VCARD + +BEGIN:VCARD +VERSION:2.1 +N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;=4A=6F=68=6E=20=42=75=74=6C=65=72=20=F0=9F=8C=9F= +=F0=9F=92=AB=F0=9F=8C=9F;;; +FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=4A=6F=68=6E=20=42=75=74=6C=65=72=20=F0=9F=8C=9F= +=F0=9F=92=AB=F0=9F=8C=9F +TEL;PREF:5556667777 +END:VCARD + +BEGIN:VCARD +VERSION:2.1 +TEL;WORK;PREF:1234567890 +ORG:Airline Contact #'s +NOTE;ENCODING=QUOTED-PRINTABLE:=53=70=69=72=69=74=20=41=69=72=6C=69= +=6E=65=73=20=38=30=30=2D=37=37=32=2D=37=31=31=37=55=6E=69=74=65=64= +=20=41=69=72=6C=69=6E=65=73=20=38=30=30=2D=32=34=31=2D=36=35=32=32 +END:VCARD + +BEGIN:VCARD +VERSION:2.1 +TEL;WORK;PREF:3451112222 +X-SAMSUNGADR;ENCODING=QUOTED-PRINTABLE:;;=31=31=31=31=32=20=4E=6F=72=74=68=20=45=6C=64=72= +=69=64=67=65=20=50=61=72=6B=77=61=79;=44=61=6C=6C=61=73;=54=58;=32=32=32=32=32 +ORG:James Peacock Elementary +END:VCARD + +BEGIN:VCARD +VERSION:2.1 +TEL;CELL:8889990001 +ORG:AAA Car Service +END:VCARD diff --git a/tests/test_vcards_contacts.py b/tests/test_vcards_contacts.py index 62cf603..e737228 100644 --- a/tests/test_vcards_contacts.py +++ b/tests/test_vcards_contacts.py @@ -6,7 +6,30 @@ from Whatsapp_Chat_Exporter.vcards_contacts import normalize_number, read_vcards def test_readVCardsFile(): data_dir = os.path.join(os.path.dirname(__file__), "data") - assert len(read_vcards_file(os.path.join(data_dir, "contacts.vcf"), "852")) > 0 + data = read_vcards_file(os.path.join(data_dir, "contacts.vcf"), "852") + if data: + print("Found Names") + print("-----------------------") + for count, contact_tuple in enumerate(data, start=1): + # The name is the second element of the tuple (at index 1) + name = contact_tuple[1] + + # Print the count and the name + print(f"{count}. {name}") + print(data) + assert len(data) == 6 + # Test simple contact name + assert data[0][1] == "Sample Contact" + # Test complex name + assert data[1][1] == "Yard Lawn Guy, Jose Lopez" + # Test name with emoji + assert data[2][1] == "John Butler 🌟" + # Test note with multi-line encoding + assert data[3][1] == "Airline Contact #'s" + # Test address with multi-line encoding + assert data[4][1] == "James Peacock Elementary" + # Test business entry using ORG but not F/FN + assert data[5][1] == "AAA Car Service" def test_create_number_to_name_dicts():