Example #1
0
 def parse_value(self, value):
     self.date = parse_iso8601(value)[0]
Example #2
0
    def test_rfc_author(self):
        """Test RFC 6350 author's vCard."""
        x = parse_vcard(
            encode_to_stream("""
BEGIN:VCARD
VERSION:4.0
FN:Simon Perreault
N:Perreault;Simon;;;ing. jr,M.Sc.
BDAY:--0203
ANNIVERSARY:20090808T1430-0500
GENDER:M
LANG;PREF=1:fr
LANG;PREF=2:en
ORG;TYPE=work:Viagenie
ADR;TYPE=work:;Suite D2-630;2875 Laurier;
 Quebec;QC;G1V 2M2;Canada
TEL;VALUE=uri;TYPE="work,voice";PREF=1:tel:+1-418-656-9254;ext=102
TEL;VALUE=uri;TYPE="work,cell,voice,video,text":tel:+1-418-262-6501
EMAIL;TYPE=work:[email protected]
GEO;TYPE=work:geo:46.772673,-71.282945
KEY;TYPE=work;VALUE=uri:
 http://www.viagenie.ca/simon.perreault/simon.asc
TZ:-0500
URL;TYPE=home:http://nomis80.org
END:VCARD
"""))
        self.assertEquals("4.0", x.version)
        self.assertEquals(1, len(x["LANG"][0].parameters))

        self.assertEquals("Simon Perreault", x["FN"][0].value)
        self.assertEquals(0, len(x["FN"][0].parameters))

        self.assertEquals("Perreault;Simon;;;ing. jr,M.Sc.", x["N"][0].value)
        self.assertEquals(0, len(x["N"][0].parameters))

        self.assertEquals("--0203", x["BDAY"][0].value)
        self.assertEquals(
            iso8601.parse_iso8601("--0203")[0], x["BDAY"][0].date)
        self.assertEquals(0, len(x["BDAY"][0].parameters))

        self.assertEquals("20090808T1430-0500", x["ANNIVERSARY"][0].value)
        self.assertEquals(
            iso8601.parse_iso8601("20090808T1430-0500")[0],
            x["ANNIVERSARY"][0].date)
        self.assertEquals(0, len(x["ANNIVERSARY"][0].parameters))

        self.assertEquals("M", x["GENDER"][0].value)
        self.assertEquals(0, len(x["GENDER"][0].parameters))

        self.assertEquals("fr", x["LANG"][0].value)
        self.assertEquals(1, len(x["LANG"][0].parameters))
        self.assertEquals("PREF", x["LANG"][0].parameters[0].name)
        self.assertEquals(1, x["LANG"][0].parameters[0].value)

        self.assertEquals("en", x["LANG"][1].value)
        self.assertEquals(1, len(x["LANG"][1].parameters))
        self.assertEquals("PREF", x["LANG"][1].parameters[0].name)
        self.assertEquals(2, x["LANG"][1].parameters[0].value)

        self.assertEquals("Viagenie", x["ORG"][0].value)
        self.assertEquals(1, len(x["ORG"][0].parameters))
        self.assertEquals("TYPE", x["ORG"][0].parameters[0].name)
        self.assertEquals(["work"], x["ORG"][0].parameters[0].value)

        self.assertEquals(
            ";Suite D2-630;2875 Laurier;Quebec;QC;G1V 2M2;Canada",
            x["ADR"][0].value)
        self.assertEquals(1, len(x["ADR"][0].parameters))
        self.assertEquals("TYPE", x["ADR"][0].parameters[0].name)
        self.assertEquals(["work"], x["ADR"][0].parameters[0].value)

        self.assertEquals("tel:+1-418-656-9254;ext=102", x["TEL"][0].value)
        #TODO
        #self.assertEquals(rfc3966.TelURI("tel:+1-418-656-9254;ext=102"), x["TEL"][0].uri)
        self.assertEquals(3, len(x["TEL"][0].parameters))
        self.assertEquals("VALUE", x["TEL"][0].parameters[0].name)
        self.assertEquals("uri", x["TEL"][0].parameters[0].value)
        self.assertEquals("TYPE", x["TEL"][0].parameters[1].name)
        self.assertEquals(["work", "voice"], x["TEL"][0].parameters[1].value)

        self.assertEquals("tel:+1-418-262-6501", x["TEL"][1].value)
        #TODO
        #sself.assertEquals(rfc3966.TelURI("tel:+1-418-262-6501"), x["TEL"][1].uri)
        self.assertEquals(2, len(x["TEL"][1].parameters))
        self.assertEquals("VALUE", x["TEL"][1].parameters[0].name)
        self.assertEquals("uri", x["TEL"][1].parameters[0].value)
        self.assertEquals("TYPE", x["TEL"][1].parameters[1].name)
        self.assertEquals(["work", "cell", "voice", "video", "text"],
                          x["TEL"][1].parameters[1].value)

        self.assertEquals("*****@*****.**", x["EMAIL"][0].value)
        #TODO
        #sself.assertEquals(rfc6068.MailtoURI("mailto:[email protected]"), x["EMAIL"][0].uri)
        self.assertEquals(1, len(x["EMAIL"][0].parameters))
        self.assertEquals("TYPE", x["EMAIL"][0].parameters[0].name)
        self.assertEquals(["work"], x["EMAIL"][0].parameters[0].value)

        self.assertEquals("geo:46.772673,-71.282945", x["GEO"][0].value)
        #TODO
        #sself.assertEquals(rfc5870.GeoURI("geo:46.772673,-71.282945"), x["GEO"][0].uri)
        self.assertEquals(1, len(x["GEO"][0].parameters))
        self.assertEquals("TYPE", x["GEO"][0].parameters[0].name)
        self.assertEquals(["work"], x["GEO"][0].parameters[0].value)

        self.assertEquals("http://www.viagenie.ca/simon.perreault/simon.asc",
                          x["KEY"][0].value)
        #TODO
        #sself.assertEquals(rfc2616.HttpURL("http://www.viagenie.ca/simon.perreault/simon.asc"), x["KEY"][0].url)
        self.assertEquals(2, len(x["KEY"][0].parameters))
        self.assertEquals("TYPE", x["KEY"][0].parameters[0].name)
        self.assertEquals(["work"], x["KEY"][0].parameters[0].value)

        self.assertEquals("-0500", x["TZ"][0].value)

        self.assertEquals("http://nomis80.org", x["URL"][0].value)
        #TODO
        #sself.assertEquals(rfc2616.HttpURL("http://nomis80.org"), x["URL"][0].url)
        self.assertEquals(1, len(x["URL"][0].parameters))
        self.assertEquals("TYPE", x["URL"][0].parameters[0].name)
        self.assertEquals(["home"], x["URL"][0].parameters[0].value)
Example #3
0
 def parse_value(self, value):
     self.date = parse_iso8601(value)[0]
Example #4
0
    def test_rfc_author(self):
        """Test RFC 6350 author's vCard."""
        x = parse_vcard(encode_to_stream("""
BEGIN:VCARD
VERSION:4.0
FN:Simon Perreault
N:Perreault;Simon;;;ing. jr,M.Sc.
BDAY:--0203
ANNIVERSARY:20090808T1430-0500
GENDER:M
LANG;PREF=1:fr
LANG;PREF=2:en
ORG;TYPE=work:Viagenie
ADR;TYPE=work:;Suite D2-630;2875 Laurier;
 Quebec;QC;G1V 2M2;Canada
TEL;VALUE=uri;TYPE="work,voice";PREF=1:tel:+1-418-656-9254;ext=102
TEL;VALUE=uri;TYPE="work,cell,voice,video,text":tel:+1-418-262-6501
EMAIL;TYPE=work:[email protected]
GEO;TYPE=work:geo:46.772673,-71.282945
KEY;TYPE=work;VALUE=uri:
 http://www.viagenie.ca/simon.perreault/simon.asc
TZ:-0500
URL;TYPE=home:http://nomis80.org
END:VCARD
"""))
        self.assertEquals("4.0", x.version)
        self.assertEquals(1, len(x["LANG"][0].parameters))
        
        self.assertEquals("Simon Perreault", x["FN"][0].value)
        self.assertEquals(0, len(x["FN"][0].parameters))
        
        self.assertEquals("Perreault;Simon;;;ing. jr,M.Sc.", x["N"][0].value)
        self.assertEquals(0, len(x["N"][0].parameters))
        
        self.assertEquals("--0203", x["BDAY"][0].value)
        self.assertEquals(iso8601.parse_iso8601("--0203")[0], x["BDAY"][0].date)
        self.assertEquals(0, len(x["BDAY"][0].parameters))
        
        self.assertEquals("20090808T1430-0500", x["ANNIVERSARY"][0].value)
        self.assertEquals(iso8601.parse_iso8601("20090808T1430-0500")[0], x["ANNIVERSARY"][0].date)
        self.assertEquals(0, len(x["ANNIVERSARY"][0].parameters))
        
        self.assertEquals("M", x["GENDER"][0].value)
        self.assertEquals(0, len(x["GENDER"][0].parameters))
        
        self.assertEquals("fr", x["LANG"][0].value)
        self.assertEquals(1, len(x["LANG"][0].parameters))
        self.assertEquals("PREF", x["LANG"][0].parameters[0].name)
        self.assertEquals(1, x["LANG"][0].parameters[0].value)
        
        self.assertEquals("en", x["LANG"][1].value)
        self.assertEquals(1, len(x["LANG"][1].parameters))
        self.assertEquals("PREF", x["LANG"][1].parameters[0].name)
        self.assertEquals(2, x["LANG"][1].parameters[0].value)
        
        self.assertEquals("Viagenie", x["ORG"][0].value)
        self.assertEquals(1, len(x["ORG"][0].parameters))
        self.assertEquals("TYPE", x["ORG"][0].parameters[0].name)
        self.assertEquals(["work"], x["ORG"][0].parameters[0].value)
        
        self.assertEquals(";Suite D2-630;2875 Laurier;Quebec;QC;G1V 2M2;Canada", x["ADR"][0].value)
        self.assertEquals(1, len(x["ADR"][0].parameters))
        self.assertEquals("TYPE", x["ADR"][0].parameters[0].name)
        self.assertEquals(["work"], x["ADR"][0].parameters[0].value)
        
        self.assertEquals("tel:+1-418-656-9254;ext=102", x["TEL"][0].value)
        #TODO
        #self.assertEquals(rfc3966.TelURI("tel:+1-418-656-9254;ext=102"), x["TEL"][0].uri)
        self.assertEquals(3, len(x["TEL"][0].parameters))
        self.assertEquals("VALUE", x["TEL"][0].parameters[0].name)
        self.assertEquals("uri", x["TEL"][0].parameters[0].value)
        self.assertEquals("TYPE", x["TEL"][0].parameters[1].name)
        self.assertEquals(["work","voice"], x["TEL"][0].parameters[1].value)
        
        self.assertEquals("tel:+1-418-262-6501", x["TEL"][1].value)
        #TODO
        #sself.assertEquals(rfc3966.TelURI("tel:+1-418-262-6501"), x["TEL"][1].uri)
        self.assertEquals(2, len(x["TEL"][1].parameters))
        self.assertEquals("VALUE", x["TEL"][1].parameters[0].name)
        self.assertEquals("uri", x["TEL"][1].parameters[0].value)
        self.assertEquals("TYPE", x["TEL"][1].parameters[1].name)
        self.assertEquals(["work","cell","voice","video","text"], x["TEL"][1].parameters[1].value)
        
        self.assertEquals("*****@*****.**", x["EMAIL"][0].value)
        #TODO
        #sself.assertEquals(rfc6068.MailtoURI("mailto:[email protected]"), x["EMAIL"][0].uri)
        self.assertEquals(1, len(x["EMAIL"][0].parameters))
        self.assertEquals("TYPE", x["EMAIL"][0].parameters[0].name)
        self.assertEquals(["work"], x["EMAIL"][0].parameters[0].value)
        
        self.assertEquals("geo:46.772673,-71.282945", x["GEO"][0].value)
        #TODO
        #sself.assertEquals(rfc5870.GeoURI("geo:46.772673,-71.282945"), x["GEO"][0].uri)
        self.assertEquals(1, len(x["GEO"][0].parameters))
        self.assertEquals("TYPE", x["GEO"][0].parameters[0].name)
        self.assertEquals(["work"], x["GEO"][0].parameters[0].value)
        
        self.assertEquals("http://www.viagenie.ca/simon.perreault/simon.asc", x["KEY"][0].value)
        #TODO
        #sself.assertEquals(rfc2616.HttpURL("http://www.viagenie.ca/simon.perreault/simon.asc"), x["KEY"][0].url)
        self.assertEquals(2, len(x["KEY"][0].parameters))
        self.assertEquals("TYPE", x["KEY"][0].parameters[0].name)
        self.assertEquals(["work"], x["KEY"][0].parameters[0].value)
        
        self.assertEquals("-0500", x["TZ"][0].value)
        
        self.assertEquals("http://nomis80.org", x["URL"][0].value)
        #TODO
        #sself.assertEquals(rfc2616.HttpURL("http://nomis80.org"), x["URL"][0].url)
        self.assertEquals(1, len(x["URL"][0].parameters))
        self.assertEquals("TYPE", x["URL"][0].parameters[0].name)
        self.assertEquals(["home"], x["URL"][0].parameters[0].value)