From 8f59521660311adb961a0794e8d22945b854a4ff Mon Sep 17 00:00:00 2001
From: Calen Pennington <calen.pennington@gmail.com>
Date: Mon, 2 Jul 2012 12:25:48 -0400
Subject: [PATCH] Add a function to check round-trip export/import cycles

---
 common/lib/xmodule/tests/test_export.py | 28 +++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 common/lib/xmodule/tests/test_export.py

diff --git a/common/lib/xmodule/tests/test_export.py b/common/lib/xmodule/tests/test_export.py
new file mode 100644
index 00000000000..97da2c4fe5d
--- /dev/null
+++ b/common/lib/xmodule/tests/test_export.py
@@ -0,0 +1,28 @@
+from xmodule.modulestore.xml import XMLModuleStore
+from nose.tools import assert_equals
+from tempfile import mkdtemp
+from fs.osfs import OSFS
+
+
+def check_export_roundtrip(data_dir):
+    print "Starting import"
+    initial_import = XMLModuleStore('org', 'course', data_dir, eager=True)
+    initial_course = initial_import.course
+
+    print "Starting export"
+    export_dir = mkdtemp()
+    fs = OSFS(export_dir)
+    xml = initial_course.export_to_xml(fs)
+    with fs.open('course.xml', 'w') as course_xml:
+        course_xml.write(xml)
+
+    print "Starting second import"
+    second_import = XMLModuleStore('org', 'course', export_dir, eager=True)
+
+    print "Checking key equality"
+    assert_equals(initial_import.modules.keys(), second_import.modules.keys())
+
+    print "Checking module equality"
+    for location in initial_import.modules.keys():
+        print "Checking", location
+        assert_equals(initial_import.modules[location], second_import.modules[location])
-- 
GitLab