From 29cf09763f3174f4a142893c0f41313a6d9a931f Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 25 Jul 2012 10:09:25 -0400 Subject: [PATCH] Fixing up cms tests to only use data in common/test/data --- cms/djangoapps/contentstore/tests/tests.py | 1 + cms/envs/test.py | 14 +- {lms => common}/static/images/mute.png | Bin common/test/data/full/custom_tags/slides | 2 +- .../data/full/handouts/schematic_tutorial.pdf | Bin 0 -> 50650 bytes .../test/data/full/info/guest_handouts.html | 119 ------------ common/test/data/full/info/handouts.html | 169 ------------------ lms/envs/test.py | 13 ++ 8 files changed, 28 insertions(+), 290 deletions(-) rename {lms => common}/static/images/mute.png (100%) create mode 100644 common/test/data/full/handouts/schematic_tutorial.pdf delete mode 100644 common/test/data/full/info/guest_handouts.html delete mode 100644 common/test/data/full/info/handouts.html diff --git a/cms/djangoapps/contentstore/tests/tests.py b/cms/djangoapps/contentstore/tests/tests.py index ce956fa5ad..b7c55389b6 100644 --- a/cms/djangoapps/contentstore/tests/tests.py +++ b/cms/djangoapps/contentstore/tests/tests.py @@ -193,6 +193,7 @@ class EditTestCase(ContentStoreTestCase): self.activate_user(email) self.login(email, password) xmodule.modulestore.django._MODULESTORES = {} + xmodule.modulestore.django.modulestore().collection.drop() def check_edit_item(self, test_course_name): import_from_xml('common/test/data/', test_course_name) diff --git a/cms/envs/test.py b/cms/envs/test.py index 28dce36682..bce3c796cf 100644 --- a/cms/envs/test.py +++ b/cms/envs/test.py @@ -22,9 +22,21 @@ TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' TEST_ROOT = path('test_root') # Want static files in the same dir for running on jenkins. -STATIC_ROOT = TEST_ROOT / "staticfiles" +STATIC_ROOT = TEST_ROOT / "staticfiles" GITHUB_REPO_ROOT = TEST_ROOT / "data" +COMMON_TEST_DATA_ROOT = COMMON_ROOT / "test" / "data" + +# TODO (cpennington): We need to figure out how envs/test.py can inject things into common.py so that we don't have to repeat this sort of thing +STATICFILES_DIRS = [ + COMMON_ROOT / "static", + PROJECT_ROOT / "static", +] +STATICFILES_DIRS += [ + (course_dir, COMMON_TEST_DATA_ROOT / course_dir) + for course_dir in os.listdir(COMMON_TEST_DATA_ROOT) + if os.path.isdir(COMMON_TEST_DATA_ROOT / course_dir) +] MODULESTORE = { 'default': { diff --git a/lms/static/images/mute.png b/common/static/images/mute.png similarity index 100% rename from lms/static/images/mute.png rename to common/static/images/mute.png diff --git a/common/test/data/full/custom_tags/slides b/common/test/data/full/custom_tags/slides index 7a33ffd6c7..a93d94947c 100644 --- a/common/test/data/full/custom_tags/slides +++ b/common/test/data/full/custom_tags/slides @@ -1 +1 @@ -Lecture Slides Handout [Clean ][Annotated] \ No newline at end of file +Lecture Slides Handout [Clean ][Annotated] diff --git a/common/test/data/full/handouts/schematic_tutorial.pdf b/common/test/data/full/handouts/schematic_tutorial.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1de809404d79fbeec8d5d02c05994f7182ebc195 GIT binary patch literal 50650 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 a%{VxIe`Ed6gk$FTPK6>N5tbE!`u_lFdcjKo literal 0 HcmV?d00001 diff --git a/common/test/data/full/info/guest_handouts.html b/common/test/data/full/info/guest_handouts.html deleted file mode 100644 index 27827b9660..0000000000 --- a/common/test/data/full/info/guest_handouts.html +++ /dev/null @@ -1,119 +0,0 @@ -
-

Handouts

-
- -
    -
  1. Syllabus
  2. -
  3. 6.002x At-A-Glance (calendar)
  4. -
  5. Staff Listing
  6. -
  7. Math Review
  8. -
  9. Using the Interactive Laboratory
  10. -
  11. How to Use the System
  12. -
  13. How to Use the Question/Answer forum
  14. - -
  15. -

    Lecture Slides

    - -
  16. - -
diff --git a/common/test/data/full/info/handouts.html b/common/test/data/full/info/handouts.html deleted file mode 100644 index e13dad43b1..0000000000 --- a/common/test/data/full/info/handouts.html +++ /dev/null @@ -1,169 +0,0 @@ -
-

Handouts

-
- -
    -
  1. Syllabus
  2. -
  3. 6.002x At-A-Glance (calendar)
  4. -
  5. Staff Listing
  6. -
  7. Math Review
  8. -
  9. Using the Interactive Laboratory
  10. -
  11. How to Use the System
  12. -
  13. How to Use the Question/Answer forum
  14. - -
  15. -

    Lecture Slides

    - -
  16. -
  17. -

    Weekly solutions

    - - -
  18. -
  19. -

    Midterm Review Problems

    -

    Clean With Solutions

    -
  20. -
  21. Midterm Solutions
  22. -
diff --git a/lms/envs/test.py b/lms/envs/test.py index d52468989e..fdfbfb20c4 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -46,6 +46,19 @@ LOGGING = get_logger_config(TEST_ROOT / "log", tracking_filename="tracking.log", debug=True) +COMMON_TEST_DATA_ROOT = COMMON_ROOT / "test" / "data" + +# TODO (cpennington): We need to figure out how envs/test.py can inject things into common.py so that we don't have to repeat this sort of thing +STATICFILES_DIRS = [ + COMMON_ROOT / "static", + PROJECT_ROOT / "static", +] +STATICFILES_DIRS += [ + (course_dir, COMMON_TEST_DATA_ROOT / course_dir) + for course_dir in os.listdir(COMMON_TEST_DATA_ROOT) + if os.path.isdir(COMMON_TEST_DATA_ROOT / course_dir) +] + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3',