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])