Commit Graph

50 Commits

Author SHA1 Message Date
Calen Pennington
bc20a37c2b Simplify how shards are selected in CI 2016-08-03 16:23:02 -04:00
Ned Batchelder
8571ceabeb Fix many wrong-assert-type errors 2016-08-03 12:44:41 -04:00
Ned Batchelder
8b1978ba6c Fix unused-import errors 2016-08-03 12:44:41 -04:00
Saleem Latif
6277bd27e6 Remove all usages of USE_CUSTOM_THEME and THEME_NAME from python files 2016-07-27 14:53:02 +05:00
Calen Pennington
853bfe7a36 Add a TestCase mixin for enabling caches in tests
By default, disable all caching in tests, to preserve test independence.
In order to enable caching, inherit from CacheSetupMixin, and specify
which cache configuration is needed.

[EV-32]
2016-05-04 14:51:30 -04:00
Calen Pennington
39ff841d1f Don't pass arguments to setUp (for UrlResetMixin)
The TestCase API doesn't accept arguments, so passing arguments for some
TestCase subclasses makes adding new inheritance/mixins tricky. Instead,
prefer configuration via class attributes for TestCases.
2016-05-04 11:34:51 -04:00
Ben Patterson
b9558a90f1 Create a 3rd explicit shard for unit tests.
More accurately, this creates a 4th shard because the
last shard is always the default.
2016-04-28 10:09:32 -04:00
John Eskew
9cc1d4f91d Remove include_xml option. 2016-04-12 11:53:00 -04:00
Ned Batchelder
2e1238b83e Remove unused imports 2016-04-08 11:23:05 -04:00
Usman Khalid
6cb62f2697 Rebase upgrade Django to v1.8.5
Please note that this is a squshed commit and the work of:
Symbolist, macdiesel, nedbat, doctoryes, muzaffaryousaf and muhammad-ammar
2015-11-10 15:00:19 -05:00
Clinton Blackburn
e5ba2a5801 White-listed course detail API calls
XCOM-518
2015-07-27 14:06:44 -04:00
Will Daly
eefbf77edf Allow course staff to bypass embargo rules. 2015-07-23 08:26:43 -07:00
Ned Batchelder
78e9445aa1 Add super() calls to setUp/tearDown that are missing them
Also, I replaced a number of tearDown methods with addCleanup instead.
And also remove some unneeded patch.stopall() calls.
2015-05-14 18:14:21 -04:00
Awais
2cd265292f ECOM-1421 implementing the functionality 2015-04-16 21:46:47 +05:00
Clinton Blackburn
6a2b9f4521 Reorganized course_structures app
Celery requires all tasks to be in a tasks module. Also, the task has been updated to use default values if the the course structure generator encounters a block without the graded or format fields.
2015-03-10 11:12:51 -04:00
Will Daly
feed7eaada ECOM-1178: Embargo rules for continent codes.
This commit fixes a bug that could occur when GeoIP
returns a continent code ("EU" or "AN") instead of a
country code.  The previous implementation would
block users in this case since the country code
was not on the whitelist (consisting of all known
country codes).  The new implementation allows user
access by default if we don't recognize the country code.
2015-03-09 12:17:02 -04:00
Will Daly
ae8ddc8aee Deprecate old embargo implementation.
The new "country access" implementation replaces the old
implementation.  Middleware and tests have been updated
accordingly, but deprecated models are preserved
for backwards compatibility.
2015-02-23 15:48:04 -05:00
Will Daly
1624720f48 Stop hitting the database when no courses are blocked. 2015-02-20 14:17:14 -05:00
Will Daly
125f6957fc Skip country access check if feature flag is disabled 2015-02-13 08:57:37 -05:00
Will Daly
98ee3a5377 Implement IP filtering in embargo middleware.
Add history table for course access rule changes.

Provide test utility for simulating restricted access.

Provide `redirect_if_blocked` method for integration with other
parts of the system (will be used for blocking enrollment).

Add info-level logging explaining when and why users are blocked.
2015-02-10 10:47:51 -05:00
Will Daly
92c2fdbca1 Add new models to embargo to support country access
Add Django admin UI for configuring country access

Migrate existing embargo rules into the new tables.

ECOM-996: updated the middleware to use new models and access rules

ECOM-996: added the flag to support old and new formats

ECOM-996: added the api layer for country access settings

ECOM-996: added the api layer for country access settings

ECOM-996 implementing the white and blacklist checks.

ECOM-996 minor re-factoring in api.

ECOM-996 minor re-factoring in api.

ECOM-1025 refactoring the code according to PR feedback.

ECOM-1025 refactoring the code according to PR feedback.

ECOM-1025 deleting cache in model save and delete methods

ECOM-1025 adding basic api test cases file.

ECOM-1025 refactoring the code according to PR feedback.

ECOM-1025 refactoring the code according to PR feedback.

ECOM-1025 refactoring the code according to PR feedback. adding the test cases.

ECOM-1025 removing extra line

ECOM-1025 removing un-used function.

ECOM-1025 removing un-used function.

ECOM-1025 re-factor the code.

ECOM-1025 re-name the test file to test_middleware_access_rules.py. we already had old test_middleware.py

ECOM-1025 adding test cases for newly added models.

ECOM-1025 adding test cases and resolve conflicts.

ECOM-1025 fixing the quality and pep-8 issues.

ECOM-1025 re-factoring the code according to the PR feedback.

ECOM-1025 re-name the variable name.

ECOM-1025 removing the _check_ip_lists and its test cases. also added few missing scenarios test cases.

ECOM-1025 removing un-used line.
2015-02-09 18:28:10 +05:00
Calen Pennington
b353ed2ea2 Better support specifying of modulestore configuration in test cases
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]
2015-02-04 09:09:14 -05:00
Calen Pennington
03a05fd9d4 Always call super(..).setUp() from setUp 2015-02-04 09:09:14 -05:00
Will Daly
ce9c258f8b Update country access message end-points to be backwards compatible with embargo theme templates
Move default country access messages out of static_templates, so they are not served by other Django views.
2015-02-03 08:59:41 -05:00
Will Daly
82d7e25f3e Add views to the embargo app to render messages explaining why students are blocked. 2015-02-02 14:04:29 -05:00
Will Daly
a5867da9de Add new models to embargo to support country access
Add Django admin UI for configuring country access

Migrate existing embargo rules into the new tables.
2015-02-02 11:54:41 -05:00
Diana Huang
c71a183316 Update embargo copy.
ECOM-963

update copy in tests
2015-01-29 15:10:35 -05:00
Jesse Zoldak
bf3b87bc64 Clean up all modulestore testcases
Move modulestore config for tests to an importable location
Disable pylnt warning for lms imports in common tests
Refactor all testcases that loaded all xml courses
TE-610
TE-489
2014-12-02 07:09:36 -05:00
stv
cf9308144d Fix PEP8: E302 expected 2 blank lines, found 1 2014-11-10 11:00:11 -08:00
Adam Palay
0a385544a3 update number of queries in embargo test 2014-09-19 10:19:23 -04:00
Renzo Lucioni
9239253614 Remove Django Waffle 2014-09-12 16:22:03 -04:00
Will Daly
512db7be99 Fix embargo middleware with tests 2014-09-09 08:50:10 -04:00
Renzo Lucioni
c3359135e7 Refrain from accessing country code if country is None 2014-09-05 10:58:18 -04:00
Renzo Lucioni
aa28fba9ad Revert "Revert "Merge pull request #4976 from edx/will/ecom-128""
This reverts commit 371dfd6187.
2014-09-05 10:51:51 -04:00
Diana Huang
371dfd6187 Revert "Merge pull request #4976 from edx/will/ecom-128"
This reverts commit a03baee25c, reversing
changes made to 12e2d442e9.
2014-09-04 16:01:28 -04:00
Will Daly
31a6566110 Embargo based on country code in the user's profile. 2014-08-27 08:51:45 -04:00
Jason Zhu
13846e074d Support ipv6 in geoinfo and Embargo 2014-08-14 16:13:35 +08:00
Calen Pennington
cfcbdc0145 Move to OpaqueKey implementations from the external library
[LMS-2757]
2014-05-29 17:03:35 -04:00
Calen Pennington
cd862b3253 Merge remote-tracking branch 'edx/master' into opaque-keys
Conflicts:
	cms/djangoapps/contentstore/tests/test_contentstore.py
	cms/djangoapps/contentstore/views/component.py
	cms/djangoapps/contentstore/views/item.py
	cms/djangoapps/contentstore/views/preview.py
	cms/djangoapps/contentstore/views/tests/test_container.py
	cms/static/js/spec/views/unit_spec.js
	cms/static/js/utils/module.js
	cms/templates/container.html
	cms/templates/studio_vertical_wrapper.html
	cms/templates/studio_xblock_wrapper.html
	common/djangoapps/student/views.py
	lms/templates/notes.html
	lms/templates/textannotation.html
	lms/templates/videoannotation.html
2014-05-22 10:52:00 -04:00
Alan Boudreault
877ec3f963 some minor improvements to embargo 2014-05-20 10:03:06 -04:00
Alan Boudreault
db161543d8 Modified EMBARGO_SITE to SITE_EMBARGOED, improved logs 2014-05-19 15:53:45 -04:00
Alan Boudreault
25948e3694 Fix minor typo in a test 2014-05-19 15:12:02 -04:00
Alan Boudreault
ba6e61b907 Extended Embargo feature to support site access restriction and ip network 2014-05-19 15:12:02 -04:00
Calen Pennington
d466132a1f Merge remote-tracking branches 'edx/opaque-keys-base-keys', 'edx/opaque-keys-cms', 'edx/opaque-keys-common-djangoapps', 'edx/opaque-keys-common-lib-xmodule', 'edx/opaque-keys-common-misc', 'edx/opaque-keys-django-fields', 'edx/opaque-keys-embargo-tests', 'edx/opaque-keys-library', 'edx/opaque-keys-lms-courseware', 'edx/opaque-keys-lms-djangoapps', 'edx/opaque-keys-lms-templates', 'edx/opaque-keys-mongoengine-fields', 'edx/opaque-keys-requirements' and 'edx/opaque-keys-roles-table' into opaque-keys 2014-05-08 20:32:28 -04:00
Calen Pennington
e2bfcf2a36 Make course ids and usage ids opaque to LMS and Studio [partial commit]
This commit updates common/djangoapps.

These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).

For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.

Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>

[LMS-2370]
2014-05-07 12:54:49 -04:00
Calen Pennington
afde40ad13 Make course ids and usage ids opaque to LMS and Studio [partial commit]
This commit makes the embargo.tests module a real python module.

These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).

For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.

Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>

[LMS-2370]
2014-05-05 11:54:11 -04:00
Jay Zoldak
1fe453a3a7 Update schema for bok-choy database
Finalize tests for embargo middleware app
2014-02-27 10:27:29 -05:00
Sarina Canelake
e71bbeb1e2 Tests for embargo middleware feature 2014-02-27 09:33:17 -05:00
Sarina Canelake
fe85a1eec1 Django-admin for Embargo feature
Allows specification of countries to embargo, what course(s) should
apply embargo restrictions, and whitelist/blacklist capability for
specific individual IP addresses.
2014-02-27 08:38:05 -05:00
Julia Hansbrough
a7ae152d9b Embargo Middleware feature
Adds configurable middleware in common/djangoapps/embargo that
allows specific courses to comply with US Export regulations by
embargoing students from specific countries, whilst simultaneously
allowing other courses to be freely open to all.
2014-02-27 08:37:58 -05:00