Add test for ignoring tilde files on import of extra content
This commit is contained in:
@@ -1,16 +1,29 @@
|
||||
import os.path
|
||||
import unittest
|
||||
from glob import glob
|
||||
from mock import patch
|
||||
|
||||
from nose.tools import assert_raises, assert_equals # pylint: disable=E0611
|
||||
|
||||
from xmodule.course_module import CourseDescriptor
|
||||
from xmodule.modulestore.xml import XMLModuleStore
|
||||
from xmodule.modulestore import XML_MODULESTORE_TYPE
|
||||
from xmodule.modulestore import Location, XML_MODULESTORE_TYPE
|
||||
|
||||
from .test_modulestore import check_path_to_location
|
||||
from xmodule.tests import DATA_DIR
|
||||
|
||||
def glob_tildes_at_end(path):
|
||||
"""
|
||||
A wrapper for the `glob.glob` function, but it always returns
|
||||
files that end in a tilde (~) at the end of the list of results.
|
||||
"""
|
||||
result = glob(path)
|
||||
with_tildes = [f for f in result if f.endswith("~")]
|
||||
no_tildes = [f for f in result if not f.endswith("~")]
|
||||
return no_tildes + with_tildes
|
||||
|
||||
class TestXMLModuleStore(object):
|
||||
|
||||
class TestXMLModuleStore(unittest.TestCase):
|
||||
def test_path_to_location(self):
|
||||
"""Make sure that path_to_location works properly"""
|
||||
|
||||
@@ -42,3 +55,19 @@ class TestXMLModuleStore(object):
|
||||
location = CourseDescriptor.id_to_location("edX/toy/2012_Fall")
|
||||
errors = modulestore.get_item_errors(location)
|
||||
assert errors == []
|
||||
|
||||
@patch("xmodule.modulestore.xml.glob.glob", side_effect=glob_tildes_at_end)
|
||||
def test_tilde_files_ignored(self, fake_glob):
|
||||
modulestore = XMLModuleStore(DATA_DIR, course_dirs=['tilde'], load_error_modules=False)
|
||||
course_module = modulestore.modules['edX/tilde/2012_Fall']
|
||||
about_location = Location({
|
||||
'tag': 'i4x',
|
||||
'org': 'edX',
|
||||
'course': 'tilde',
|
||||
'category': 'about',
|
||||
'name': 'index',
|
||||
})
|
||||
about_module = course_module[about_location]
|
||||
self.assertIn("GREEN", about_module.data)
|
||||
self.assertNotIn("RED", about_module.data)
|
||||
|
||||
|
||||
1
common/test/data/tilde/about/index.html
Normal file
1
common/test/data/tilde/about/index.html
Normal file
@@ -0,0 +1 @@
|
||||
GREEN
|
||||
1
common/test/data/tilde/about/index.html~
Normal file
1
common/test/data/tilde/about/index.html~
Normal file
@@ -0,0 +1 @@
|
||||
RED
|
||||
1
common/test/data/tilde/course.xml
Normal file
1
common/test/data/tilde/course.xml
Normal file
@@ -0,0 +1 @@
|
||||
<course org="edX" course="tilde" slug="2012_Fall"/>
|
||||
2
common/test/data/tilde/course/2012_Fall.xml
Normal file
2
common/test/data/tilde/course/2012_Fall.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<course>
|
||||
</course>
|
||||
Reference in New Issue
Block a user