Branch 'python/master' - 2 commits - testfiles/testContactMinimalFromXML.xml tests/test-contact.py

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Tue Oct 25 15:47:54 CEST 2011


 testfiles/testContactMinimalFromXML.xml |    2 ++
 tests/test-contact.py                   |   25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

New commits:
commit 10e18e5a6d92272fb80bac33c54bcb870ea67dcf
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 14:47:16 2011 +0100

    Add testfiles/testContactMinimalFromXML.xml

diff --git a/testfiles/testContactMinimalFromXML.xml b/testfiles/testContactMinimalFromXML.xml
new file mode 100644
index 0000000..7a316ff
--- /dev/null
+++ b/testfiles/testContactMinimalFromXML.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" ?>
+<contact xmlns="http://kolab.org"><uid>0123456789</uid><product-id>PyKolab Format XML Bindings</product-id><creation-date>2011-10-25T14:31:43.604435</creation-date><last-modification-date>2011-10-25T14:31:43.605026</last-modification-date><sensitivity>public</sensitivity><email><smtp-address>vanmeeuwen at kolabsys.com</smtp-address></email></contact>


commit 76297de26689bab7e3b017fd514fc9de6eb25914
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 14:45:42 2011 +0100

    Update test-contact to attempt to read from and write to a document ensuring the content is the same.

diff --git a/tests/test-contact.py b/tests/test-contact.py
index e0196bc..ed4f816 100644
--- a/tests/test-contact.py
+++ b/tests/test-contact.py
@@ -1,5 +1,6 @@
 import pyxb
 
+import os
 import sys
 import unittest
 
@@ -9,6 +10,10 @@ from pykolab.format import Name
 from pykolab.format import SMTPContact
 from pykolab.format import UID
 
+from pykolab.format import CreateFromDocument
+
+import pykolab.raw.format
+
 class TestContact(unittest.TestCase):
     """
         Test creating / writing a contact
@@ -98,5 +103,25 @@ class TestContact(unittest.TestCase):
         self.assertEqual("Jeroen", mycontact.name.given_name)
         self.assertEqual("van Meeuwen", mycontact.name.last_name)
 
+    def testContactMinimalFromXML(self):
+        xml = open(os.path.join(os.path.dirname(__file__), '..', 'testfiles', "testContactMinimalFromXML.xml")).read().strip()
+        mycontact = CreateFromDocument(xml)
+
+        # Test creation
+
+        # CreateFromDocument creates it's contact in raw format object instances.
+        # This is what we *expect*, but not necessarily what we *want*, as the
+        # objects created from documents will then have no callable shortcut API
+        # functions we so carefully created for them.
+        self.assertTrue(isinstance(mycontact, pykolab.raw.format.Contact))
+        self.assertFalse(isinstance(mycontact, pykolab.format.Contact))
+        self.assertFalse(isinstance(mycontact, Contact))
+
+        self.assertTrue(isinstance(mycontact.email, list))
+        self.assertEqual(1, len(mycontact.email))
+        self.assertTrue(isinstance(mycontact.email[0], SMTPContact))
+        self.assertEqual("vanmeeuwen at kolabsys.com", mycontact.email[0].smtp_address)
+        self.assertEqual(xml, mycontact.toxml())
+
 if __name__ == '__main__':
     unittest.main()





More information about the commits mailing list