Commit Graph

383 Commits

Author SHA1 Message Date
David Ormsbee
2051c90924 Test Speedup: Isolate Modulestore Signals
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]
2017-02-23 10:31:16 -05:00
Jesse Zoldak
83a451dc0b Revert "PLAT-1104 Import courses asynchronously" 2017-01-30 19:21:43 -05:00
Jeremy Bowman
576f6755f8 Merge pull request #14200 from edx/jmbowman/async_course_import
PLAT-1104 Import courses asynchronously
2017-01-30 16:50:55 -05:00
Jeremy Bowman
831cd4b85b PLAT-1104 Import courses asynchronously 2017-01-30 12:19:33 -05:00
jagonzalr
d112c0b81b show button new library in studio depending on flags and user staff status
add flag DISABLE_LIBRARY_CREATION

add comma

use CourseCreatorRole to determine if user can create a library

add disable library creation feature flag

Conflicts:
	cms/djangoapps/contentstore/views/course.py

ENABLE_CONTENT_LIBRARIES flag

check for course creator role for library creation

Conflicts:
	cms/djangoapps/contentstore/views/course.py

add unit tests

make check of creation of library a true/false for forntend, add security in api call, clean tests

update tests

fix docstring of tests

fixed quality violation

fixed broken unit test and quality violations

Feedback changes and unit test to assert libraries are visible to non staff users too

fixed quality violation and feedback changes
2017-01-30 12:51:35 +05:00
Renzo Lucioni
31f5c8ddcb Remove the program admin tool from Studio
All programs are now managed using the Django admin on the catalog service. This is the first in a series of commits removing use of the old programs service from edx-platform.

ECOM-4422
2017-01-27 19:33:06 -05:00
muhammad-ammar
36dfc2c08d log video id and status along with message 2017-01-12 13:59:23 +05:00
Jesse Zoldak
ff43b823d8 Revert "Feature flag for library creation" 2017-01-11 14:35:19 -05:00
Braden MacDonald
58e3c7827a Merge pull request #13914 from proversity-org/proversity/feature-flag-for-library-creation
Feature flag for library creation
2017-01-11 10:56:25 -08:00
muhammad-ammar
ab7f4140d1 Update error handling for Video Uploads
Tnl-4777
2017-01-04 18:15:37 +05:00
Mushtaq Ali
2c7941d1ef Prevent files larger than 5 GB
Prevent file containig containing non-ascii or special characters in file name
TNL-5855 TNL-5957
2016-12-21 16:36:17 +05:00
jagonzalr
0682618a57 fix docstring of tests 2016-12-16 08:26:16 +02:00
jagonzalr
4f50874fd0 update tests 2016-12-14 12:24:10 +02:00
Mushtaq Ali
2968e3551b Prevent non-video file formats - TNL-5956 2016-12-09 17:05:06 +05:00
marcotuts
2f4a4083bb removed global staff check 2016-12-02 17:40:54 +00:00
Calen Pennington
b24c22804e Merge pull request #14047 from cpennington/safer-opaque-keys
Safer opaque keys
2016-12-02 10:44:36 -05:00
Calen Pennington
fd0d69594a Upgrade to the latest version of opaque-keys 2016-12-01 13:04:31 -05:00
jagonzalr
ce17c1cdcf make check of creation of library a true/false for forntend, add security in api call, clean tests 2016-11-28 11:19:35 +02:00
jagonzalr
fe2c92e6c4 add unit tests 2016-11-23 11:13:12 +02:00
muhammad-ammar
dd45991926 soft delete video from video uploads page
TNL-5899
2016-11-21 15:14:57 +05:00
Mushtaq Ali
a31a728a95 Add duplicate functionality for unit, sub-section and section - TNL-5797, TNL-5798 2016-11-18 12:39:35 +05:00
Syed Hasan raza
97ebdb0301 Merge pull request #13633 from edx/shr/bug/TNL-557-conditional-module-children-modules-empty-context
Fix empty context KeyError for conditional module
2016-10-12 13:04:34 +05:00
Andy Armstrong
684aec8740 Move contentserver to openedx/core 2016-10-11 12:49:33 -04:00
Syed Hassan Raza
c41db159f4 Fix empty context KeyError for conditional module 2016-10-11 19:15:06 +05:00
Jesse Shapiro
47d18c35fe Add DnDv2 to advanced problems; relabel DnDv1 as deprecated 2016-10-05 09:22:35 -04:00
Matjaz Gregoric
344c72b3e2 Use non-ascii PLATFORM_NAME in tests.
It should help catch unicode encoding problems earlier.

This also updates python-saml dependency to a version that includes a
patch for unicode strings.
2016-09-23 15:38:23 +02:00
Qubad786
b25dc54d68 update library content block's children on branches 2016-08-25 16:44:52 +05:00
M. Rehan
ffbaf1fe54 Merge pull request #12813 from edx/aj/TNL4826-lib-problems-not-update-with-import
Refersh library children for the block during import.
2016-08-16 00:52:58 +05:00
Qubad786
aca82be335 Move fix to importer module and fix branch_setting in MixedModuleStore. 2016-08-15 18:50:50 +05:00
Mushtaq Ali
fb2f9948e1 Fix dynamic load RequireJs issue on Maintenance Dashboard 2016-08-09 13:48:20 +00:00
Mushtaq Ali
abb6af9789 Basic architecture of Maintenance App - SUST-19, SUST-42. Implement Force Publish Course view. SUST-46 2016-08-09 18:16:13 +05:00
Ned Batchelder
8571ceabeb Fix many wrong-assert-type errors 2016-08-03 12:44:41 -04:00
Ned Batchelder
1905f0c517 Fix simplifiable-range errors 2016-08-03 12:44:41 -04:00
Ned Batchelder
8b1978ba6c Fix unused-import errors 2016-08-03 12:44:41 -04:00
Christina Roberts
467bc55d27 Merge pull request #12950 from edx/christina/studio-support-levels
Studio support level of components/xblocks
2016-07-21 17:13:58 -04:00
cahrens
d4cc7b8ffd Support level support for Studio xblock creation.
TNL-4670
2016-07-21 15:44:59 -04:00
Kevin Kim
1ab52f8b0a Merge pull request #12945 from edx/kkim/ora_tz_date
Convert ORA Due Dates
2016-07-21 10:52:07 -04:00
Kevin Kim
94100f5944 Convert ORA due dates to user preferred time zone 2016-07-21 13:57:20 +00:00
Renzo Lucioni
e7cdcb9b71 Merge pull request #12954 from edx/renzo/extract-token-generation
Unify JWT generation code
2016-07-11 15:37:14 -04:00
Renzo Lucioni
f6d7371dd1 Unify JWT generation code
These changes unify four different approaches to JWT creation, moving the core of the AccessTokenView to a general-purpose JwtBuilder class. This utility class defaults to using the system's JWT configuration, but it will allow overriding of the signing key and audience claim to support those clients which still require this. Part of ECOM-4566.
2016-07-07 16:38:39 -04:00
cahrens
25bfd0a7d8 Get Studio deprecation list from XBlockConfiguration.
Replaces settings value.
TNL-4669
2016-07-06 11:05:52 -04:00
Toby Lawrence
4e22affb24 [PERF-344] Add versioning of cached course assets to allow graceful cache invalidation
When releasing the versioned assets work, we stumbled on a problem with old pickled
versions of the StaticContent objects residing in cache, which triggered a bug in the
code. Not wanting to blow away all cached items, we ended up having to revert and add
in some backwards-compatible helper code to ease the transition.

With this, we'll now utilize the version argument that Django's caching interface
allows, in conjunction with a constant value that can be modified when breaking changes
are being made, to let us gracefully ignore older cached course assets.
2016-07-05 15:15:47 -04:00
Toby Lawrence
bb29ad5f30 Revert "Revert "[PERF-325] Add versioned course asset URLs when canonicalizing asset paths.""
This reverts commit 9967b6fd58.
2016-06-23 13:27:15 -04:00
Kevin Falcone
9967b6fd58 Revert "[PERF-325] Add versioned course asset URLs when canonicalizing asset paths."
We're seeing errors in NR from objects read out of the cache lacking the
'StaticContent' object has no attribute 'content_digest'
File "/edx/app/edxapp/edx-platform/common/djangoapps/contentserver/middleware.py",
    line 70, in process_request

This reverts commit 849ebc5f22.
2016-06-22 12:11:35 -04:00
Toby Lawrence
849ebc5f22 [PERF-325] Add versioned course asset URLs when canonicalizing asset paths. 2016-06-15 08:04:52 -04:00
Adam Palay
a7d638de9e clear request cache after celery task finishes (TNL-2705)
set max_num_courses_in_cache on modulestore
2016-05-18 10:43:54 -04:00
Calen Pennington
ccaafce05b Merge pull request #12205 from cpennington/disable-caching-in-tests
Disable caching in LMS tests
2016-05-06 15:22:48 -04:00
Diana Huang
07573c5141 Replace old conditional lettuce test with bok choy version. 2016-05-06 09:38:36 -04:00
Calen Pennington
18e1610043 Remove the create_user argument to setUp.
Instead, use a class attribute to define test behavior. This allows for
easier addition of new mixins over time.
2016-05-04 11:35:55 -04:00
Ayub khan
986209669d Revert "SUST-35 Implementation of course_key_from_string_or_404 to return course_key or raise a 404" 2016-04-28 15:50:17 +05:00