1. 29 Jun, 2017 1 commit
    • Refactor, enhance, and adjust unified_course_view flag. · 2e80c1e6
      This includes several general enhancement in addition
      to the fixes for unified_course_view:
      1. Add support for default when no waffle flag defined.
      2. Add support for table_blacklist to assertNumQueries.
      3. Rename flag to 'course_experience.course_outline_page'.
      4. Change flag default to True when it is not defined.
      Robert Raposa committed
  2. 12 Jun, 2017 1 commit
  3. 17 Mar, 2017 1 commit
  4. 23 Feb, 2017 1 commit
    • Test Speedup: Isolate Modulestore Signals · 2051c909
      There are a number of Django Signals that are on the modulestore's
      SignalHandler class, such as SignalHandler.course_published. These
      signals can trigger very expensive processes to occur, such as course
      overview or block structures generation. Most of the time, the test
      author doesn't care about these side-effects.
      
      This commit does a few things:
      
      * Converts the signals on SignalHandler to be instances of a new
        SwitchedSignal class, that allows signal sending to be disabled.
      
      * Creates a SignalIsolationMixin helper similar in spirit to the
        CacheIsolationMixin, and adds it to the ModuleStoreIsolationMixin
        (and thus to ModuleStoreTestCase and SharedModuleStoreTestCase).
      
      * Converts our various tests to use this new mechanism. In some cases,
        this means adjusting query counts downwards because they no longer
        have to account for publishing listener actions.
      
      Modulestore generated signals are now muted by default during test runs.
      Calls to send() them will result in no-ops. You can choose to enable
      specific signals for a given subclass of ModuleStoreTestCase or
      SharedModuleStoreTestCase by specifying an ENABLED_SIGNALS class
      attribute, like the following example:
      
          from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
      
          class MyPublishTestCase(ModuleStoreTestCase):
              ENABLED_SIGNALS = ['course_published', 'pre_publish']
      
      You should take great care when disabling signals outside of a
      ModuleStoreTestCase or SharedModuleStoreTestCase, since they can leak
      out into other tests. Be sure to always clean up, and never disable
      signals outside of testing. Because signals are essentially process
      globals, it can have a lot of unpleasant side-effects if we start
      mucking around with them during live requests.
      
      Overall, this change has cut the total test execution time for
      edx-platform by a bit over a third, though we still spend a lot in
      pre-test setup during our test builds.
      
      [PERF-413]
      David Ormsbee committed
  5. 07 Nov, 2016 1 commit
  6. 04 Aug, 2016 1 commit
  7. 03 Aug, 2016 1 commit
  8. 25 Jul, 2016 1 commit
  9. 03 May, 2016 1 commit
  10. 02 May, 2016 2 commits
  11. 28 Apr, 2016 1 commit
  12. 27 Apr, 2016 1 commit
  13. 19 Apr, 2016 1 commit
  14. 28 Jan, 2016 1 commit
  15. 22 Nov, 2015 1 commit
  16. 14 Oct, 2015 1 commit
  17. 08 Oct, 2015 1 commit
  18. 23 Sep, 2015 1 commit
  19. 28 Aug, 2015 3 commits
  20. 19 Aug, 2015 1 commit
  21. 03 Aug, 2015 1 commit
  22. 17 Jul, 2015 1 commit
  23. 16 Jul, 2015 1 commit
  24. 14 Jul, 2015 1 commit
  25. 15 May, 2015 1 commit
  26. 07 May, 2015 1 commit
  27. 31 Mar, 2015 2 commits
    • Add new gating logic to restrict users from accessing courseware when an entrance exam is required · cc04bb99
      - added entrance exam check on course info
      - staff can by pass gating and added tests
      - refined gating logic
      - changes after rebasing with Asad's branch
      - check ENTRANCE_EXAMS feature is enabled
      - updated test to reflect new logic
      - catering anonymous user in entrance exam permission
      - fixed broken tests
      - change after feedback on 16/3
      - fix for a broken test
      - created new entrance_exams module
      - fixed quality error and improved test coverage
      - put get_required_content back in milestones helper
      - Refactored entrance exams logic
      - Refactored tabs logic
      - Fixed broken unit test
      - changes after feedback from dan-f on 3/27
      - removed unnecessary user.is_anonymous check
      - Addressed PR feedback
      - Addressed commit-specific feedback
      - Rework guard clauses
      - Add coverage for course info case
      Zia Fazal committed
  28. 17 Mar, 2015 1 commit
  29. 12 Mar, 2015 1 commit
  30. 10 Mar, 2015 1 commit
    • Entrance Exam authoring and messaging updates · 5a7ac441
      Multi-commit history:
      - hide drag functionality for entrance exam section.
      - hide entrance exam subsection elements e.g. delete, drag, name etc.
      - show unit/verticals expanded in case of entrance exam
      - modify code in order to allow user to update entrance exam score from UI.
      - write down unit tests.
      - write down Jasmine tests.
      - add bok-choy test
      - updated bok-choy test
      - internationalize string
      - repositioned sequential block creatori
      - SOL-221 (entrance exam message)
      - SOL-199 LMS Part (show entrance exam content) and hide the course navigation bar.
      - redirect the view in case of entrance exam.
      - update code structure as per suggestions
      - write down unit tests
      - fix pep8
      - instead of hiding the exam requirement message, now also showing the exam the completion message (success state).
      - write down unit test to show exam completion message.
      - Update code as per review suggestions
      - update doc string
      - addressed review suggestions
      - change sequential message text
      - css adjustments
      - added new css class for entrance exam score in studio
      - added Jasmine test for remaning coverage
      - sequential message should appear under the context of entrance exam subsection.
      - updated text in CMS and LMS as per suggestions.
      - added unit text to insure sequential message should not be present in other chapters rather then entrance exam.
      - skip setter if empty prerequisite course list
      - exclude logic from xblock_info.js that is specifically related to entrance exam.
      - added js tests and updated code as per suggestions
      - added tests
      - addressed several PR issues
      - Several small fixes (style, refactoring)
      - Fixed score update issue
      - added some more unit tests.
      - code suggested changes.
      - addressed PR feedback
      asadiqbal committed
  31. 04 Mar, 2015 1 commit
    • backend changes based on feedback · e21ff203
      Conflicts:
      	lms/djangoapps/courseware/courses.py
      	lms/djangoapps/instructor_task/api.py
      
      refined entrance exam student attempts reset
      
      Quality improvements 1/16
      
      added rescore, delete state and task history functionality
      
      added unit tests for entrance exam reset attempts
      
      added unit tests for re scoring of entrance exam and task history
      
      improved test coverage
      
      Got rid of pep violation
      
      feedback changes and added jasmine test
      
      added more jasmine tests for Javascript changes
      
      added bok-choy tests for UI changes
      
      replaced input containing <p> tags with <label>
      
      Removed ee element assertions to avoid js error
      
      Added call to super.setUp()
      
      changes based on feedback on 2/18
      
      Writing tests in JS instead of coffee script
      
      commit related to skip entrance exam 2/13
      
      fixed bad-continuation quality error
      
      fixed broken bok-choy test
      
      changes based on feedback on 2/18
      
      added js tests and removed coffee script tests
      
      fixed broken bok-choy and unit tests
      
      changes left while rebasing
      
      rephrase test titles
      
      do not need these libs
      
      changes based on feedback on 2/24
      
      changes text which was left
      
      Changes based on feedback on 3/3
      Zia Fazal committed
  32. 04 Feb, 2015 1 commit
    • Better support specifying of modulestore configuration in test cases · b353ed2e
      The existing pattern of using `override_settings(MODULESTORE=...)` prevented
      us from having more than one layer of subclassing in modulestore tests.
      
      In a structure like:
      
          @override_settings(MODULESTORE=store_a)
          class BaseTestCase(ModuleStoreTestCase):
              def setUp(self):
                  # use store
      
          @override_settings(MODULESTORE=store_b)
          class ChildTestCase(BaseTestCase):
              def setUp(self):
                  # use store
      
      In this case, the store actions performed in `BaseTestCase` on behalf of
      `ChildTestCase` would still use `store_a`, even though the `ChildTestCase`
      had specified to use `store_b`. This is because the `override_settings`
      decorator would be the innermost wrapper around the `BaseTestCase.setUp` method,
      no matter what `ChildTestCase` does.
      
      To remedy this, we move the call to `override_settings` into the
      `ModuleStoreTestCase.setUp` method, and use a cleanup to remove the override.
      Subclasses can just defined the `MODULESTORE` class attribute to specify which
      modulestore to use _for the entire `setUp` chain_.
      
      [PLAT-419]
      Calen Pennington committed
  33. 16 Jan, 2015 1 commit