Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
6cd7e08c
Commit
6cd7e08c
authored
Jul 25, 2014
by
Calen Pennington
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Assert course equality in bulk, so that all differences are displayed
parent
f1da4efb
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
1 deletions
+57
-1
common/lib/xmodule/xmodule/tests/__init__.py
+57
-1
No files found.
common/lib/xmodule/xmodule/tests/__init__.py
View file @
6cd7e08c
...
@@ -12,6 +12,7 @@ import os
...
@@ -12,6 +12,7 @@ import os
import
pprint
import
pprint
import
unittest
import
unittest
from
contextlib
import
contextmanager
from
mock
import
Mock
from
mock
import
Mock
from
path
import
path
from
path
import
path
...
@@ -174,12 +175,64 @@ def map_references(value, field, actual_course_key):
...
@@ -174,12 +175,64 @@ def map_references(value, field, actual_course_key):
return
value
return
value
class
CourseComparisonTest
(
unittest
.
TestCase
):
class
BulkAssertionManager
(
object
):
"""
This provides a facility for making a large number of assertions, and seeing all of
the failures at once, rather than only seeing single failures.
"""
def
__init__
(
self
,
test_case
):
self
.
_equal_expected
=
[]
self
.
_equal_actual
=
[]
self
.
_test_case
=
test_case
def
assertEqual
(
self
,
expected
,
actual
,
description
=
None
):
if
description
is
None
:
description
=
"{!r} does not equal {!r}"
.
format
(
expected
,
actual
)
if
expected
!=
actual
:
self
.
_equal_expected
.
append
((
description
,
expected
))
self
.
_equal_actual
.
append
((
description
,
actual
))
def
run_assertions
(
self
):
self
.
_test_case
.
assertEqual
(
self
.
_equal_expected
,
self
.
_equal_actual
)
class
BulkAssertionTest
(
unittest
.
TestCase
):
"""
This context manager provides a BulkAssertionManager to assert with,
and then calls `run_assertions` at the end of the block to validate all
of the assertions.
"""
def
setUp
(
self
,
*
args
,
**
kwargs
):
super
(
BulkAssertionTest
,
self
)
.
setUp
(
*
args
,
**
kwargs
)
self
.
_manager
=
None
@contextmanager
def
bulk_assertions
(
self
):
if
self
.
_manager
:
yield
else
:
try
:
self
.
_manager
=
BulkAssertionManager
(
self
)
yield
finally
:
self
.
_manager
.
run_assertions
()
self
.
_manager
=
None
def
assertEqual
(
self
,
expected
,
actual
,
message
=
None
):
if
self
.
_manager
is
not
None
:
self
.
_manager
.
assertEqual
(
expected
,
actual
,
message
)
else
:
super
(
BulkAssertionTest
,
self
)
.
assertEqual
(
expected
,
actual
,
message
)
class
CourseComparisonTest
(
BulkAssertionTest
):
"""
"""
Mixin that has methods for comparing courses for equality.
Mixin that has methods for comparing courses for equality.
"""
"""
def
setUp
(
self
):
def
setUp
(
self
):
super
(
CourseComparisonTest
,
self
)
.
setUp
()
self
.
field_exclusions
=
set
()
self
.
field_exclusions
=
set
()
self
.
ignored_asset_keys
=
set
()
self
.
ignored_asset_keys
=
set
()
...
@@ -235,6 +288,7 @@ class CourseComparisonTest(unittest.TestCase):
...
@@ -235,6 +288,7 @@ class CourseComparisonTest(unittest.TestCase):
self
.
_assertCoursesEqual
(
expected_items
,
actual_items
,
actual_course_key
,
expect_drafts
=
True
)
self
.
_assertCoursesEqual
(
expected_items
,
actual_items
,
actual_course_key
,
expect_drafts
=
True
)
def
_assertCoursesEqual
(
self
,
expected_items
,
actual_items
,
actual_course_key
,
expect_drafts
=
False
):
def
_assertCoursesEqual
(
self
,
expected_items
,
actual_items
,
actual_course_key
,
expect_drafts
=
False
):
with
self
.
bulk_assertions
():
self
.
assertEqual
(
len
(
expected_items
),
len
(
actual_items
))
self
.
assertEqual
(
len
(
expected_items
),
len
(
actual_items
))
actual_item_map
=
{
actual_item_map
=
{
...
@@ -339,6 +393,8 @@ class CourseComparisonTest(unittest.TestCase):
...
@@ -339,6 +393,8 @@ class CourseComparisonTest(unittest.TestCase):
expected_content
,
expected_count
=
expected_store
.
get_all_content_for_course
(
expected_course_key
)
expected_content
,
expected_count
=
expected_store
.
get_all_content_for_course
(
expected_course_key
)
actual_content
,
actual_count
=
actual_store
.
get_all_content_for_course
(
actual_course_key
)
actual_content
,
actual_count
=
actual_store
.
get_all_content_for_course
(
actual_course_key
)
with
self
.
bulk_assertions
():
self
.
assertEqual
(
expected_count
,
actual_count
)
self
.
assertEqual
(
expected_count
,
actual_count
)
self
.
_assertAssetsEqual
(
expected_course_key
,
expected_content
,
actual_course_key
,
actual_content
)
self
.
_assertAssetsEqual
(
expected_course_key
,
expected_content
,
actual_course_key
,
actual_content
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment