From 7a55f1207d7f03f7ce594c8482f5848a5026653f Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Mon, 7 Jul 2014 15:32:21 -0400 Subject: [PATCH 1/7] Add tests of cross-modulestore import/export [LMS-2945] --- .../lib/xmodule/xmodule/modulestore/django.py | 1 + .../lib/xmodule/xmodule/modulestore/mixed.py | 6 +- .../xmodule/modulestore/mongo/draft.py | 3 +- .../test_cross_modulestore_import_export.py | 303 ++++++++++++++++++ .../tests/test_mixed_modulestore.py | 8 +- .../xmodule/modulestore/xml_importer.py | 1 - common/lib/xmodule/xmodule/tests/__init__.py | 143 ++++++++- 7 files changed, 453 insertions(+), 12 deletions(-) create mode 100644 common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py diff --git a/common/lib/xmodule/xmodule/modulestore/django.py b/common/lib/xmodule/xmodule/modulestore/django.py index 973833f4f8..fbcc491ac7 100644 --- a/common/lib/xmodule/xmodule/modulestore/django.py +++ b/common/lib/xmodule/xmodule/modulestore/django.py @@ -71,6 +71,7 @@ def create_modulestore_instance(engine, content_store, doc_store_config, options doc_store_config=doc_store_config, i18n_service=i18n_service or ModuleI18nService(), branch_setting_func=_get_modulestore_branch_setting, + create_modulestore_instance=create_modulestore_instance, **_options ) diff --git a/common/lib/xmodule/xmodule/modulestore/mixed.py b/common/lib/xmodule/xmodule/modulestore/mixed.py index 4811163429..34a19dd2c0 100644 --- a/common/lib/xmodule/xmodule/modulestore/mixed.py +++ b/common/lib/xmodule/xmodule/modulestore/mixed.py @@ -12,7 +12,6 @@ from opaque_keys import InvalidKeyError from . import ModuleStoreWriteBase from xmodule.modulestore import ModuleStoreEnum -from xmodule.modulestore.django import create_modulestore_instance from opaque_keys.edx.locator import CourseLocator, BlockUsageLocator from xmodule.modulestore.exceptions import ItemNotFoundError from opaque_keys.edx.keys import CourseKey, UsageKey @@ -30,13 +29,16 @@ class MixedModuleStore(ModuleStoreWriteBase): """ ModuleStore knows how to route requests to the right persistence ms """ - def __init__(self, contentstore, mappings, stores, i18n_service=None, **kwargs): + def __init__(self, contentstore, mappings, stores, i18n_service=None, create_modulestore_instance=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration information """ super(MixedModuleStore, self).__init__(contentstore, **kwargs) + if create_modulestore_instance is None: + raise ValueError('MixedModuleStore constructor must be passed a create_modulestore_instance function') + self.modulestores = [] self.mappings = {} diff --git a/common/lib/xmodule/xmodule/modulestore/mongo/draft.py b/common/lib/xmodule/xmodule/modulestore/mongo/draft.py index 9e26c211dc..98cdc9fad7 100644 --- a/common/lib/xmodule/xmodule/modulestore/mongo/draft.py +++ b/common/lib/xmodule/xmodule/modulestore/mongo/draft.py @@ -50,7 +50,8 @@ class DraftModuleStore(MongoModuleStore): def __init__(self, *args, **kwargs): """ Args: - branch_setting_func: a function that returns the branch setting to use for this store's operations + branch_setting_func: a function that returns the branch setting to use for this store's operations. + This should be an attribute from ModuleStoreEnum.Branch """ super(DraftModuleStore, self).__init__(*args, **kwargs) self.branch_setting_func = kwargs.pop('branch_setting_func', lambda: ModuleStoreEnum.Branch.published_only) diff --git a/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py b/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py new file mode 100644 index 0000000000..6763838fde --- /dev/null +++ b/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py @@ -0,0 +1,303 @@ +""" +This suite of tests verifies that courses exported from one modulestore can be imported into +another modulestore and the result will be identical (ignoring changes to identifiers that are +the result of being imported into a course with a different course id). + +It does this by providing facilities for creating and cleaning up each of the modulestore types, +and then for each combination of modulestores, performing the sequence: + 1) use xml_importer to read a course from xml from disk into the first modulestore (called the source) + 2) use xml_exporter to dump the course from the source modulestore to disk + 3) use xml_importer to read the dumped course into a second modulestore (called the destination) + 4) Compare all modules in the source and destination modulestores to make sure that they line up + +""" + +import ddt +import itertools +import random +from contextlib import contextmanager, nested +from functools import partial +from unittest import TestCase +from shutil import rmtree +from tempfile import mkdtemp +from opaque_keys.edx.locations import SlashSeparatedCourseKey + +from xmodule.tests import CourseComparisonTest + +from xmodule.modulestore.split_mongo.split import SplitMongoModuleStore +from xmodule.modulestore.mongo.base import ModuleStoreEnum +from xmodule.modulestore.mongo.draft import DraftModuleStore +from xmodule.modulestore.mixed import MixedModuleStore +from xmodule.contentstore.mongo import MongoContentStore +from xmodule.modulestore.xml_importer import import_from_xml +from xmodule.modulestore.xml_exporter import export_to_xml + +COMMON_DOCSTORE_CONFIG = { + 'host': 'localhost' +} + + +class MemoryCache(object): + """ + This fits the metadata_inheritance_cache_subsystem interface used by + the modulestore, and stores the data in a dictionary in memory. + """ + def __init__(self): + self._data = {} + + def get(self, key, default=None): + return self._data.get(key, default) + + def set(self, key, value): + self._data[key] = value + + +class MongoModulestoreBuilder(object): + """ + A builder class for a DraftModuleStore. + """ + @contextmanager + def build(self, contentstore): + """ + A contextmanager that returns an isolated mongo modulestore, and then deletes + all of its data at the end of the context. + + Args: + contentstore: The contentstore that this modulestore should use to store + all of its assets. + """ + doc_store_config = dict( + db='modulestore{}'.format(random.randint(0, 10000)), + collection='xmodule', + **COMMON_DOCSTORE_CONFIG + ) + + # Set up a temp directory for storing filesystem content created during import + fs_root = mkdtemp() + + modulestore = DraftModuleStore( + contentstore, + doc_store_config, + fs_root, + render_template=repr, + branch_setting_func=lambda: ModuleStoreEnum.Branch.draft_preferred, + metadata_inheritance_cache_subsystem=MemoryCache(), + ) + + try: + yield modulestore + finally: + # Delete the created database + db = modulestore.database + db.connection.drop_database(db) + db.connection.close() + + # Delete the created directory on the filesystem + rmtree(fs_root) + + def __repr__(self): + return 'MongoModulestoreBuilder()' + + +class VersioningModulestoreBuilder(object): + """ + A builder class for a VersioningModuleStore. + """ + @contextmanager + def build(self, contentstore): + """ + A contextmanager that returns an isolated versioning modulestore, and then deletes + all of its data at the end of the context. + + Args: + contentstore: The contentstore that this modulestore should use to store + all of its assets. + """ + doc_store_config = dict( + db='modulestore{}'.format(random.randint(0, 10000)), + collection='split_module', + **COMMON_DOCSTORE_CONFIG + ) + # Set up a temp directory for storing filesystem content created during import + fs_root = mkdtemp() + + modulestore = SplitMongoModuleStore( + contentstore, + doc_store_config, + fs_root, + render_template=repr, + ) + + try: + yield modulestore + finally: + # Delete the created database + db = modulestore.db + db.connection.drop_database(db) + db.connection.close() + + # Delete the created directory on the filesystem + rmtree(fs_root) + + def __repr__(self): + return 'SplitModulestoreBuilder()' + +class MixedModulestoreBuilder(object): + """ + A builder class for a MixedModuleStore. + """ + def __init__(self, store_builders, mappings=None): + """ + Args: + store_builders: A list of modulestore builder objects. These will be instantiated, in order, + as the backing stores for the MixedModuleStore. + mappings: Any course mappings to pass to the MixedModuleStore on instantiation. + """ + self.store_builders = store_builders + self.mappings = mappings or {} + + @contextmanager + def build(self, contentstore): + """ + A contextmanager that returns a mixed modulestore built on top of modulestores + generated by other builder classes. + + Args: + contentstore: The contentstore that this modulestore should use to store + all of its assets. + """ + names, generators = zip(*self.store_builders) + + with nested(*(gen.build(contentstore) for gen in generators)) as modulestores: + # Make the modulestore creation function just return the already-created modulestores + store_iterator = iter(modulestores) + create_modulestore_instance = lambda *args, **kwargs: store_iterator.next() + + # Generate a fake list of stores to give the already generated stores appropriate names + stores = [{'NAME': name, 'ENGINE': 'This space deliberately left blank'} for name in names] + + modulestore = MixedModuleStore(contentstore, self.mappings, stores, create_modulestore_instance=create_modulestore_instance) + + yield modulestore + + def __repr__(self): + return 'MixedModulestoreBuilder({!r}, {!r})'.format(self.store_builders, self.mappings) + + +class MongoContentstoreBuilder(object): + """ + A builder class for a MongoContentStore. + """ + @contextmanager + def build(self): + """ + A contextmanager that returns a MongoContentStore, and deletes its contents + when the context closes. + """ + contentstore = MongoContentStore( + db='contentstore{}'.format(random.randint(0, 10000)), + collection='content', + **COMMON_DOCSTORE_CONFIG + ) + + try: + yield contentstore + finally: + # Delete the created database + db = contentstore.fs_files.database + db.connection.drop_database(db) + db.connection.close() + + def __repr__(self): + return 'MongoContentstoreBuilder()' + + +MODULESTORE_SETUPS = ( + MongoModulestoreBuilder(), + VersioningModulestoreBuilder(), + MixedModulestoreBuilder([('draft', MongoModulestoreBuilder())]), + MixedModulestoreBuilder([('split', VersioningModulestoreBuilder())]), +) +CONTENTSTORE_SETUPS = (MongoContentstoreBuilder(),) +COURSE_DATA_NAMES = ('toy', 'test_unicode') + +@ddt.ddt +class CrossStoreXMLRoundtrip(CourseComparisonTest): + """ + This class exists to test XML import and export between different modulestore + classes. + """ + + def setUp(self): + super(CrossStoreXMLRoundtrip, self).setUp() + self.export_dir = mkdtemp() + self.addCleanup(rmtree, self.export_dir) + + @ddt.data(*itertools.product( + MODULESTORE_SETUPS, + MODULESTORE_SETUPS, + CONTENTSTORE_SETUPS, + CONTENTSTORE_SETUPS, + COURSE_DATA_NAMES, + )) + @ddt.unpack + def test_round_trip(self, source_builder, dest_builder, source_content_builder, dest_content_builder, course_data_name): + self.maxDiff = None + source_course_key = SlashSeparatedCourseKey('source', 'course', 'key') + dest_course_key = SlashSeparatedCourseKey('dest', 'course', 'key') + + # Construct the contentstore for storing the first import + with source_content_builder.build() as source_content: + # Construct the modulestore for storing the first import (using the previously created contentstore) + with source_builder.build(source_content) as source_store: + # Construct the contentstore for storing the second import + with dest_content_builder.build() as dest_content: + # Construct the modulestore for storing the second import (using the second contentstore) + with dest_builder.build(dest_content) as dest_store: + import_from_xml( + source_store, + 'test_user', + 'common/test/data', + course_dirs=[course_data_name], + static_content_store=source_content, + target_course_id=source_course_key, + create_new_course_if_not_present=True, + ) + + export_to_xml( + source_store, + source_content, + source_course_key, + self.export_dir, + 'exported_course', + ) + + import_from_xml( + dest_store, + 'test_user', + self.export_dir, + static_content_store=dest_content, + target_course_id=dest_course_key, + create_new_course_if_not_present=True, + ) + + self.exclude_field(source_course_key.make_usage_key('course', 'key'), 'wiki_slug') + self.exclude_field(None, 'xml_attributes') + self.ignore_asset_key('_id') + self.ignore_asset_key('uploadDate') + self.ignore_asset_key('content_son') + self.ignore_asset_key('thumbnail_location') + + self.assertCoursesEqual( + source_store, + source_course_key, + dest_store, + dest_course_key, + ) + + self.assertAssetsEqual( + source_content, + source_course_key, + dest_content, + dest_course_key, + ) diff --git a/common/lib/xmodule/xmodule/modulestore/tests/test_mixed_modulestore.py b/common/lib/xmodule/xmodule/modulestore/tests/test_mixed_modulestore.py index 7dc251b4e1..1c4f94d102 100644 --- a/common/lib/xmodule/xmodule/modulestore/tests/test_mixed_modulestore.py +++ b/common/lib/xmodule/xmodule/modulestore/tests/test_mixed_modulestore.py @@ -104,12 +104,6 @@ class TestMixedModuleStore(unittest.TestCase): self.addCleanup(self.connection.close) super(TestMixedModuleStore, self).setUp() - patcher = patch.multiple( - 'xmodule.modulestore.mixed', - create_modulestore_instance=create_modulestore_instance, - ) - patcher.start() - self.addCleanup(patcher.stop) self.addTypeEqualityFunc(BlockUsageLocator, '_compareIgnoreVersion') self.addTypeEqualityFunc(CourseLocator, '_compareIgnoreVersion') # define attrs which get set in initdb to quell pylint @@ -207,7 +201,7 @@ class TestMixedModuleStore(unittest.TestCase): if index > 0: store_configs[index], store_configs[0] = store_configs[0], store_configs[index] break - self.store = MixedModuleStore(None, **self.options) + self.store = MixedModuleStore(None, create_modulestore_instance=create_modulestore_instance, **self.options) self.addCleanup(self.store.close_all_connections) # convert to CourseKeys diff --git a/common/lib/xmodule/xmodule/modulestore/xml_importer.py b/common/lib/xmodule/xmodule/modulestore/xml_importer.py index 2de6a9b01a..158c9001d8 100644 --- a/common/lib/xmodule/xmodule/modulestore/xml_importer.py +++ b/common/lib/xmodule/xmodule/modulestore/xml_importer.py @@ -151,7 +151,6 @@ def import_from_xml( # If we're going to remap the course_id, then we can only do that with # a single course - if target_course_id: assert(len(xml_module_store.modules) == 1) diff --git a/common/lib/xmodule/xmodule/tests/__init__.py b/common/lib/xmodule/xmodule/tests/__init__.py index d79bd4366c..e7c8e06912 100644 --- a/common/lib/xmodule/xmodule/tests/__init__.py +++ b/common/lib/xmodule/xmodule/tests/__init__.py @@ -19,7 +19,7 @@ from xblock.field_data import DictFieldData from xblock.fields import ScopeIds from xmodule.x_module import ModuleSystem, XModuleDescriptor, XModuleMixin -from xmodule.modulestore.inheritance import InheritanceMixin +from xmodule.modulestore.inheritance import InheritanceMixin, own_metadata from opaque_keys.edx.locations import SlashSeparatedCourseKey from xmodule.mako_module import MakoDescriptorSystem from xmodule.error_module import ErrorDescriptor @@ -154,3 +154,144 @@ class LogicTest(unittest.TestCase): def ajax_request(self, dispatch, data): """Call Xmodule.handle_ajax.""" return json.loads(self.xmodule.handle_ajax(dispatch, data)) + + +class CourseComparisonTest(unittest.TestCase): + """ + Mixin that has methods for comparing courses for equality. + """ + + def setUp(self): + self.field_exclusions = set() + self.ignored_asset_keys = set() + + def exclude_field(self, usage_id, field_name): + """ + Mark field ``field_name`` of expected block usage ``usage_id`` as ignored + + Args: + usage_id (:class:`opaque_keys.edx.UsageKey` or ``None``). If ``None``, skip, this field in all blocks + field_name (string): The name of the field to skip + """ + self.field_exclusions.add((usage_id, field_name)) + + def ignore_asset_key(self, key_name): + self.ignored_asset_keys.add(key_name) + + def assertCoursesEqual(self, expected_store, expected_course_key, actual_store, actual_course_key): + """ + Assert that the courses identified by ``expected_course_key`` in ``expected_store`` and + ``actual_course_key`` in ``actual_store`` are identical (ignore differences related + owing to the course_keys being different). + + Any field value mentioned in ``self.field_exclusions`` by the key (usage_id, field_name) + will be ignored for the purpose of equality checking. + """ + expected_items = expected_store.get_items(expected_course_key) + actual_items = actual_store.get_items(actual_course_key) + self.assertGreater(len(expected_items), 0) + self.assertEqual(len(expected_items), len(actual_items)) + + actual_item_map = {item.location: item for item in actual_items} + + for expected_item in expected_items: + actual_item_location = expected_item.location.map_into_course(actual_course_key) + if expected_item.location.category == 'course': + actual_item_location = actual_item_location.replace(name=actual_item_location.run) + actual_item = actual_item_map.get(actual_item_location) + + # compare published state + exp_pub_state = expected_store.compute_publish_state(expected_item) + act_pub_state = actual_store.compute_publish_state(actual_item) + self.assertEqual( + exp_pub_state, + act_pub_state, + 'Published states for usages {} and {} differ: {!r} != {!r}'.format( + expected_item.location, + actual_item.location, + exp_pub_state, + act_pub_state + ) + ) + + # compare fields + self.assertEqual(expected_item.fields, actual_item.fields) + + for field_name in expected_item.fields: + if (expected_item.scope_ids.usage_id, field_name) in self.field_exclusions: + continue + + if (None, field_name) in self.field_exclusions: + continue + + # Children are handled specially + if field_name == 'children': + continue + + exp_value = getattr(expected_item, field_name) + actual_value = getattr(actual_item, field_name) + self.assertEqual( + exp_value, + actual_value, + "Field {} doesn't match between usages {} and {}: {!r} != {!r}".format( + field_name, + expected_item.scope_ids.usage_id, + actual_item.scope_ids.usage_id, + exp_value, + actual_value, + ) + ) + + # compare children + self.assertEqual(expected_item.has_children, actual_item.has_children) + if expected_item.has_children: + expected_children = [] + for course1_item_child in expected_item.children: + expected_children.append( + course1_item_child.map_into_course(actual_course_key) + ) + self.assertEqual(expected_children, actual_item.children) + + def assertAssetEqual(self, expected_course_key, expected_asset, actual_course_key, actual_asset): + for key in self.ignored_asset_keys: + if key in expected_asset: + del expected_asset[key] + if key in actual_asset: + del actual_asset[key] + + expected_key = expected_asset.pop('asset_key') + actual_key = actual_asset.pop('asset_key') + self.assertEqual(expected_key.map_into_course(actual_course_key), actual_key) + self.assertEqual(expected_key, actual_key.map_into_course(expected_course_key)) + + expected_filename = expected_asset.pop('filename') + actual_filename = actual_asset.pop('filename') + self.assertEqual(expected_key.to_deprecated_string(), expected_filename) + self.assertEqual(actual_key.to_deprecated_string(), actual_filename) + self.assertEqual(expected_asset, actual_asset) + + def _assertAssetsEqual(self, expected_course_key, expected_assets, actual_course_key, actual_assets): + self.assertEqual(len(expected_assets), len(actual_assets)) + + actual_assets_map = {asset['asset_key']: asset for asset in actual_assets} + for expected_item in expected_assets: + actual_item = actual_assets_map[expected_item['asset_key'].map_into_course(actual_course_key)] + self.assertAssetEqual(expected_course_key, expected_item, actual_course_key, actual_item) + + def assertAssetsEqual(self, expected_store, expected_course_key, actual_store, actual_course_key): + """ + Assert that the course assets identified by ``expected_course_key`` in ``expected_store`` and + ``actual_course_key`` in ``actual_store`` are identical, allowing for differences related + to their being from different course keys. + """ + + 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) + + self.assertEqual(expected_count, actual_count) + self._assertAssetsEqual(expected_course_key, expected_content, actual_course_key, actual_content) + + expected_thumbs = expected_store.get_all_content_thumbnails_for_course(expected_course_key) + actual_thumbs = actual_store.get_all_content_thumbnails_for_course(actual_course_key) + + self._assertAssetsEqual(expected_course_key, expected_thumbs, actual_course_key, actual_thumbs) From 8e0189bcf7f90ea4dd1798c2a8e39c8798ced8c7 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 16 Jul 2014 08:53:58 -0400 Subject: [PATCH 2/7] Skip DraftVersioningModuleStore tests --- .../test_cross_modulestore_import_export.py | 22 ++++++++++++++++--- common/lib/xmodule/xmodule/tests/__init__.py | 14 +++++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py b/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py index 6763838fde..23a8c21f6b 100644 --- a/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py +++ b/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py @@ -16,8 +16,7 @@ import ddt import itertools import random from contextlib import contextmanager, nested -from functools import partial -from unittest import TestCase +from unittest import SkipTest from shutil import rmtree from tempfile import mkdtemp from opaque_keys.edx.locations import SlashSeparatedCourseKey @@ -46,9 +45,23 @@ class MemoryCache(object): self._data = {} def get(self, key, default=None): + """ + Get a key from the cache. + + Args: + key: The key to update. + default: The value to return if the key hasn't been set previously. + """ return self._data.get(key, default) def set(self, key, value): + """ + Set a key in the cache. + + Args: + key: The key to update. + value: The value change the key to. + """ self._data[key] = value @@ -113,6 +126,8 @@ class VersioningModulestoreBuilder(object): contentstore: The contentstore that this modulestore should use to store all of its assets. """ + # pylint: disable=unreachable + raise SkipTest("DraftVersioningModuleStore doesn't yet support the same interface as the rest of the modulestores") doc_store_config = dict( db='modulestore{}'.format(random.randint(0, 10000)), collection='split_module', @@ -142,6 +157,7 @@ class VersioningModulestoreBuilder(object): def __repr__(self): return 'SplitModulestoreBuilder()' + class MixedModulestoreBuilder(object): """ A builder class for a MixedModuleStore. @@ -221,6 +237,7 @@ MODULESTORE_SETUPS = ( CONTENTSTORE_SETUPS = (MongoContentstoreBuilder(),) COURSE_DATA_NAMES = ('toy', 'test_unicode') + @ddt.ddt class CrossStoreXMLRoundtrip(CourseComparisonTest): """ @@ -242,7 +259,6 @@ class CrossStoreXMLRoundtrip(CourseComparisonTest): )) @ddt.unpack def test_round_trip(self, source_builder, dest_builder, source_content_builder, dest_content_builder, course_data_name): - self.maxDiff = None source_course_key = SlashSeparatedCourseKey('source', 'course', 'key') dest_course_key = SlashSeparatedCourseKey('dest', 'course', 'key') diff --git a/common/lib/xmodule/xmodule/tests/__init__.py b/common/lib/xmodule/xmodule/tests/__init__.py index e7c8e06912..eaedb54da7 100644 --- a/common/lib/xmodule/xmodule/tests/__init__.py +++ b/common/lib/xmodule/xmodule/tests/__init__.py @@ -176,6 +176,12 @@ class CourseComparisonTest(unittest.TestCase): self.field_exclusions.add((usage_id, field_name)) def ignore_asset_key(self, key_name): + """ + Add an asset key to the list of keys to be ignored when comparing assets. + + Args: + key_name: The name of the key to ignore. + """ self.ignored_asset_keys.add(key_name) def assertCoursesEqual(self, expected_store, expected_course_key, actual_store, actual_course_key): @@ -253,6 +259,9 @@ class CourseComparisonTest(unittest.TestCase): self.assertEqual(expected_children, actual_item.children) def assertAssetEqual(self, expected_course_key, expected_asset, actual_course_key, actual_asset): + """ + Assert that two assets are equal, allowing for differences related to their being from different courses. + """ for key in self.ignored_asset_keys: if key in expected_asset: del expected_asset[key] @@ -270,7 +279,10 @@ class CourseComparisonTest(unittest.TestCase): self.assertEqual(actual_key.to_deprecated_string(), actual_filename) self.assertEqual(expected_asset, actual_asset) - def _assertAssetsEqual(self, expected_course_key, expected_assets, actual_course_key, actual_assets): + def _assertAssetsEqual(self, expected_course_key, expected_assets, actual_course_key, actual_assets): # pylint: disable=invalid-name + """ + Private helper method for assertAssetsEqual + """ self.assertEqual(len(expected_assets), len(actual_assets)) actual_assets_map = {asset['asset_key']: asset for asset in actual_assets} From 4e67c2a9b393cf921b1da8127d4c953c3a65917e Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 16 Jul 2014 09:08:13 -0400 Subject: [PATCH 3/7] Add the manual testing course for testing xml import/export across modulestores --- .../test_cross_modulestore_import_export.py | 2 +- common/lib/xmodule/xmodule/tests/__init__.py | 2 +- .../about/overview.html | 47 +++++ .../about/short_description.html | 0 .../0edc5e96bacc449eaae9fe8b5be75994.xml | 15 ++ .../0f9fc83830694ffc8fead4fcf7aa8d39.xml | 15 ++ .../473ab1a4c5064c919ae483ecc86a8df7.xml | 5 + .../5b18cea952a84fb1a34db345a476175a.xml | 20 +++ .../90e352a0316a4dc68baaca0308f002e3.xml | 26 +++ .../c0a3b20598dc4ebba704a51a309251db.xml | 15 ++ .../e13a327cc54f4e56bda64c5e9627edd1.xml | 15 ++ .../2df1fe87253549199f30cabb19e14b7c.xml | 3 + .../3d216a50442f4cd5a1d4171c68f13f58.xml | 3 + .../5bb7a5ab824f460580a756a4f347377c.xml | 3 + .../60989ac1589241ed9dbca0f2070276fd.xml | 40 +++++ .../a0178ff300514e24829e239604dce12c.xml | 3 + .../a64a6f63f75d430aa71e6ce113c5b4d2.xml | 8 + .../ab97a6dbfafd48868c36bed4c8c5391d.xml | 3 + .../be8a64868f2f460ea490e001a25e588d.xml | 3 + .../ce2fd991d84b4a5ca75350eb8e350627.xml | 3 + .../d68c2861c10a4c9d92a679b4cfc0f924.xml | 7 + .../3b04d935c8d945c3900708279fb24892.xml | 93 ++++++++++ .../b3aa2db471a9412fbc96302f2e5ea983.xml | 99 +++++++++++ .../ecfe4fa774ff48d089ae84daa1f6cc75.xml | 93 ++++++++++ .../data/manual-testing-complete/course.xml | 1 + .../manual-testing-complete/course/2014.xml | 13 ++ .../ecfe4fa774ff48d089ae84daa1f6cc75.xml | 93 ++++++++++ .../fd120d9503334db5a2ce53c2e0162128.html | 1 + .../html/fd120d9503334db5a2ce53c2e0162128.xml | 1 + .../29fe8cca3a99412c801c5b9ce53780c5.xml | 20 +++ .../370cfd42f00843578f50e32545356ef1.xml | 22 +++ .../5904f30aba7a41d3ab1609e58bb5a6c2.xml | 3 + .../5c49dcff565848b8a4834ee8b3beeebc.xml | 21 +++ .../7e39859879f24e8689861024d4f7cb1e.xml | 33 ++++ .../006fa27802794e20a0e04e146a7e4e66.xml | 3 + .../084d74e8d1494817ac5661ae5893fd61.xml | 3 + .../0b73083f132c4ecb8ea24a363efcbc68.xml | 3 + .../11b926ee2cde42259b5165b918de0493.xml | 1 + .../14d2052331234fd68fdbd984a2ec8396.xml | 3 + .../1f17ac7c38b2421b8c6027c3652366c6.xml | 3 + .../32b9f88c4c164dd69ae87a0754516267.xml | 1 + .../38105f0357534b4999bbc1dcf82c9148.xml | 1 + .../4755fc0ee7ff4ed19a720b61810064d1.xml | 1 + .../47735fdcfbf1444dbabbd5a09df1a790.xml | 1 + .../5887a034ad17480393c5ebca4b8fd1d4.xml | 3 + .../5bac2ffd65ea4f988bcf474fe93257e6.xml | 1 + .../7897479a19e24871bbbdc02457aa3c0b.xml | 1 + .../90c15baa6c004d3f90b43af405968de3.xml | 1 + .../9a63361c946c4b6486e233d21b4947be.xml | 3 + .../a4bfead3b0204b15a988d77a5d7f58f2.xml | 1 + .../ccc9fb7ada404ba0986b3fca4056b831.xml | 1 + .../82e9d374eeb944489d5decdb6b8fbd76.html | 33 ++++ .../html/82e9d374eeb944489d5decdb6b8fbd76.xml | 1 + .../info/handouts.html | 1 + .../manual-testing-complete/info/updates.html | 1 + .../info/updates.items.json | 1 + .../lti/b05c0297100f41e888ddadf82b3ce1b2.xml | 1 + .../policies/2014/grading_policy.json | 1 + .../policies/2014/policy.json | 1 + .../policies/assets.json | 1 + .../009f9b6b79404206a2c316117099fed5.xml | 13 ++ .../11bbd906f12d4cbdbca3050d68cea79f.xml | 32 ++++ .../29fe8cca3a99412c801c5b9ce53780c5.xml | 20 +++ .../2f7da8477d8748f0aad0f7fc2134b84f.xml | 32 ++++ .../35501134637b4c2b8cfe07ba5e6492bb.xml | 33 ++++ .../39bb74b14f674ea1ab25f52bac9eb83b.xml | 92 ++++++++++ .../3a1e2c95f8a54bc98b65e9373dafc86e.xml | 26 +++ .../427a1515100a4d08b959ba5852a1630d.xml | 6 + .../440e298f5b804377bc31d06a3f783a5c.xml | 21 +++ .../45c30a061c3f473499a32d7e14f4a750.xml | 21 +++ .../45c317cb93d447f293ce982a2eccd77d.xml | 31 ++++ .../5c49dcff565848b8a4834ee8b3beeebc.xml | 21 +++ .../5e3b300353974a42875052a21823e39b.xml | 20 +++ .../70257670b9dd45c8afd5abd3c9fe606f.xml | 32 ++++ .../7eff0366d53045c1b423ee988d344a13.xml | 92 ++++++++++ .../8a5a7653bf804a968c17d398cb91aa4e.xml | 17 ++ .../9497fab9cc6f4187ba17d23731b614bf.xml | 14 ++ .../9992192a14ce47fcb71f77d7e77c821c.xml | 22 +++ .../a473cecce312487a8339995bde24be53.xml | 11 ++ .../a5ca9b0f09cc4798bb53e5840e625301.xml | 10 ++ .../b6b80c6b383f4c3c80efc32b968368dc.xml | 37 ++++ .../c2ee6e8917fe4c97ac99d7b616ff0b89.xml | 162 ++++++++++++++++++ .../d0bdd7c3487d4f94b7bcd207f110c20a.xml | 31 ++++ .../d30b3812201a46af88d30bd4c7c009e6.xml | 15 ++ .../dcada38f8944442799ac2fed42201641.xml | 11 ++ .../eb248c5260254ce094c157ffb8352d16.xml | 15 ++ .../01a66b857fad4221b01f742ec0e86c49.xml | 1 + .../0aa765632f4d4b84ad8d96f41cec5825.xml | 3 + .../0cd40e13b4a045aba07d4f626c8b32de.xml | 3 + .../0d0e69d08e95436fbbf1be4c6dfec48a.xml | 1 + .../0e86943b2cb54a56a1a14c13da3f388d.xml | 3 + .../158963ff751747e3945f3834dd30e5fb.xml | 3 + .../17d39634673a4151b6f337a5c216eb52.xml | 3 + .../1dd8f4178f2a4b9cb09f37c5d6230f9d.xml | 1 + .../21b1a19dbe264a98b06ce9567a3e4171.xml | 3 + .../2db8efb4573842c8854648a3ac9e52a4.xml | 3 + .../2e23db09e8b5472cbae9624208e3e1d7.xml | 3 + .../30e61af5a8d74833bb66e19ccea1e5d8.xml | 1 + .../313d1bb9031c4d529c7018248d6fff52.xml | 1 + .../345d618ca88944668d86586f83bff338.xml | 1 + .../363603b2c7d34d26a3baa9de29be2211.xml | 3 + .../3aa3759deca94e1783b7dc9c148cd483.xml | 3 + .../3b115f75b12b42699a3148ea0ffee76b.xml | 3 + .../4026dba735fe450faf81f766c63bef8b.xml | 1 + .../47b7432f998c45abad9f79effeda60bf.xml | 3 + .../4cd0b5b3dd3343b5937fea80ec5005cc.xml | 3 + .../4eadf76912cd436b9d698c8759784d8d.xml | 3 + .../508e5fa820b643b1a329e2ab5dd59393.xml | 3 + .../589cf38cfb22450a901818b48d4b7ff5.xml | 3 + .../5c33f2c2b3aa45f5bfbf7bf7f9bcb2ff.xml | 3 + .../613404c6df1445ed81f12883dde30a41.xml | 3 + .../67c9c6cd94fe498fb1dc965c35eca3d3.xml | 3 + .../6c4c10b89cc449fcbde0006c47e3ee26.xml | 3 + .../7942fe1a06aa439092aabe3615d91b15.xml | 3 + .../7a598df4cc4345138332c1d19ecd963d.xml | 3 + .../7fe9686bb8fe4edba75867ddd1d7b1c5.xml | 3 + .../8ad25eec767f40ae81bcc7555778c91e.xml | 3 + .../948737f132254c2aa65f6024edee7e68.xml | 3 + .../aa338c6acd1e498ca8d4ccf6ded72f9b.xml | 3 + .../ac37154b78454cecaad080221cf1dbd5.xml | 1 + .../b7ebe0f048e9466e9ef32e7815fb5a93.xml | 3 + .../b857bc7d37c74e38b51741340da91dcd.xml | 3 + .../bb9bc5a7d0d945cea2a77e3d85f28c41.xml | 3 + .../bba59b360c344a1db0eb3239e2381484.xml | 1 + .../bd0b30ef8bea48ff86559be1cbe2fa49.xml | 1 + .../c18b834531e14a3fb070dabf16380541.xml | 3 + .../c59bd9a5a7ec4b31a95515c14bb9f552.xml | 3 + .../c681c865017d4c0ea931f7345aa79277.xml | 3 + .../c76b46a765e24c1f9f51de2b49131be0.xml | 1 + .../ca6fc483ef064fa7b275f9e712f041f6.xml | 1 + .../d0e7879a63a4429fb1223a22443681b9.xml | 3 + .../d49ee0959c564c8d8b55660ca5fa9bcd.xml | 1 + .../d6d7e96bf6a441a4b4e7c7eac0d0e573.xml | 3 + .../d7d631967807476485aa26ba0c39a992.xml | 3 + .../d912a92ed03d4f818661a1636b8a6f9b.xml | 3 + .../dc2b88afd57241f9bcd2dcbd03c6c2f3.xml | 1 + .../f09502cf408742c2aa3c92705ab1dce7.xml | 3 + .../f0e52b8eec5647ffb6013aef62b3d309.xml | 1 + .../f585fca58e5c4fe8ab231a5f62701de3.xml | 3 + .../f58fd90cbd794cad881692d3b6e5cdbf.xml | 1 + .../f9372e3b199a4986a46c8d18e094b931.xml | 3 + .../fbbe37e2980c4f0d96b0b8ac45c0378b.xml | 3 + .../data/manual-testing-complete/static/1.pdf | Bin 0 -> 194007 bytes .../Screen Shot 2013-04-16 at 1.43.36 PM.png | Bin 0 -> 8733 bytes .../static/subs_OEoXaMPEzfM.srt.sjson | 143 ++++++++++++++++ .../8e4cce2b4aaf4ba28b1220804619e41f.html | 1 + .../0a1602f0f191422ba5ed727f903627b2.xml | 3 + .../0b693c2547674645a8afd0be4c57b8b7.xml | 1 + .../0b73083f132c4ecb8ea24a363efcbc68.xml | 3 + .../18b50987e2d84bcca2cfc74ef6b25275.xml | 3 + .../193fbc9bb9184ba685d01430cb2025d3.xml | 3 + .../1f17ac7c38b2421b8c6027c3652366c6.xml | 3 + .../224cff129b784243a79f08dd7203151c.xml | 3 + .../3a7305c59c254ce9814093f98b913e8a.xml | 3 + .../4502126328484ed58c87e7ba3b0fa21d.xml | 3 + .../4aeec80b652c4cc2bf38c248d6440c9f.xml | 4 + .../50c89b9bf3bc40c2bb723fc7d1c756d1.xml | 3 + .../53142c50e5284f9798e8e0cab8471528.xml | 3 + .../536b3582ce354e9da79f157077172bb3.xml | 3 + .../572f898249da49bc9ee426804302aa24.xml | 3 + .../5887a034ad17480393c5ebca4b8fd1d4.xml | 3 + .../6b1a4d545905465ca491f0115b6e759b.xml | 3 + .../6b54ae89dc554f77b4dd94e1d9911df6.xml | 3 + .../6cb018f4cc884e98b9df621b4cc54a29.xml | 3 + .../81323bb6c1cd4b83b8cd1e9b8fb119a7.xml | 3 + .../856a9709ac974c92b539710bb64fb4c5.xml | 3 + .../93113ad02cac43659c0e1833880408f3.xml | 3 + .../999c7e94329144cdb844aec9671fc8ca.xml | 3 + .../99ab6b79e2b6426f9bc7e07e8540a655.xml | 3 + .../a99ab4f608de41e9927d281dcfbd4343.xml | 3 + .../b34ef5e4257b4a34a60c2679aeeb5455.xml | 3 + .../bcb995ca53934a7b8aee27f81d96d189.xml | 3 + .../be87d2061b8f41be87293fcc643514c7.xml | 3 + .../c641d8fe821440bea1781287d05fdc82.xml | 3 + .../c7c39a80da5f4ac4935ab83790528063.xml | 3 + .../c87ff358615846b08b85f66ebce94fb3.xml | 3 + .../cd6b719c0f9c46e7abd2d44c37d49cd8.xml | 3 + .../da4f07aceaf542f5b1807c779a719067.xml | 3 + .../ddd289f35194456eaa470a3fd0d08ca2.xml | 3 + .../de8fb6b7e0904de3a39db9d4bfaab6a2.xml | 3 + .../e34798bf546a4178ab76afe3a5f729af.xml | 3 + .../e81c7ddcf5434387a2a6163ca973520c.xml | 3 + .../e8a308821e204375905bedc227fa769f.xml | 3 + .../e9c213fb60134b93a3b1b4ba882cb1a7.xml | 3 + .../ec70919ea9c24ed192e37e7d022d4133.xml | 3 + .../f3387cc263aa4e2e9070b6954a9c1b90.xml | 3 + .../37ec61cf011c429db8cb5f49b47681f7.xml | 1 + .../5d607a74f7214eaa92079c3195e0badb.xml | 1 + 188 files changed, 2039 insertions(+), 2 deletions(-) create mode 100644 common/test/data/manual-testing-complete/about/overview.html create mode 100644 common/test/data/manual-testing-complete/about/short_description.html create mode 100644 common/test/data/manual-testing-complete/annotatable/0edc5e96bacc449eaae9fe8b5be75994.xml create mode 100644 common/test/data/manual-testing-complete/annotatable/0f9fc83830694ffc8fead4fcf7aa8d39.xml create mode 100644 common/test/data/manual-testing-complete/annotatable/473ab1a4c5064c919ae483ecc86a8df7.xml create mode 100644 common/test/data/manual-testing-complete/annotatable/5b18cea952a84fb1a34db345a476175a.xml create mode 100644 common/test/data/manual-testing-complete/annotatable/90e352a0316a4dc68baaca0308f002e3.xml create mode 100644 common/test/data/manual-testing-complete/annotatable/c0a3b20598dc4ebba704a51a309251db.xml create mode 100644 common/test/data/manual-testing-complete/annotatable/e13a327cc54f4e56bda64c5e9627edd1.xml create mode 100644 common/test/data/manual-testing-complete/chapter/2df1fe87253549199f30cabb19e14b7c.xml create mode 100644 common/test/data/manual-testing-complete/chapter/3d216a50442f4cd5a1d4171c68f13f58.xml create mode 100644 common/test/data/manual-testing-complete/chapter/5bb7a5ab824f460580a756a4f347377c.xml create mode 100644 common/test/data/manual-testing-complete/chapter/60989ac1589241ed9dbca0f2070276fd.xml create mode 100644 common/test/data/manual-testing-complete/chapter/a0178ff300514e24829e239604dce12c.xml create mode 100644 common/test/data/manual-testing-complete/chapter/a64a6f63f75d430aa71e6ce113c5b4d2.xml create mode 100644 common/test/data/manual-testing-complete/chapter/ab97a6dbfafd48868c36bed4c8c5391d.xml create mode 100644 common/test/data/manual-testing-complete/chapter/be8a64868f2f460ea490e001a25e588d.xml create mode 100644 common/test/data/manual-testing-complete/chapter/ce2fd991d84b4a5ca75350eb8e350627.xml create mode 100644 common/test/data/manual-testing-complete/chapter/d68c2861c10a4c9d92a679b4cfc0f924.xml create mode 100644 common/test/data/manual-testing-complete/combinedopenended/3b04d935c8d945c3900708279fb24892.xml create mode 100644 common/test/data/manual-testing-complete/combinedopenended/b3aa2db471a9412fbc96302f2e5ea983.xml create mode 100644 common/test/data/manual-testing-complete/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml create mode 100644 common/test/data/manual-testing-complete/course.xml create mode 100644 common/test/data/manual-testing-complete/course/2014.xml create mode 100644 common/test/data/manual-testing-complete/drafts/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml create mode 100644 common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.html create mode 100644 common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.xml create mode 100644 common/test/data/manual-testing-complete/drafts/problem/29fe8cca3a99412c801c5b9ce53780c5.xml create mode 100644 common/test/data/manual-testing-complete/drafts/problem/370cfd42f00843578f50e32545356ef1.xml create mode 100644 common/test/data/manual-testing-complete/drafts/problem/5904f30aba7a41d3ab1609e58bb5a6c2.xml create mode 100644 common/test/data/manual-testing-complete/drafts/problem/5c49dcff565848b8a4834ee8b3beeebc.xml create mode 100644 common/test/data/manual-testing-complete/drafts/problem/7e39859879f24e8689861024d4f7cb1e.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/006fa27802794e20a0e04e146a7e4e66.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/084d74e8d1494817ac5661ae5893fd61.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/11b926ee2cde42259b5165b918de0493.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/14d2052331234fd68fdbd984a2ec8396.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/32b9f88c4c164dd69ae87a0754516267.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/38105f0357534b4999bbc1dcf82c9148.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/4755fc0ee7ff4ed19a720b61810064d1.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/47735fdcfbf1444dbabbd5a09df1a790.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/5bac2ffd65ea4f988bcf474fe93257e6.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/7897479a19e24871bbbdc02457aa3c0b.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/90c15baa6c004d3f90b43af405968de3.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/9a63361c946c4b6486e233d21b4947be.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/a4bfead3b0204b15a988d77a5d7f58f2.xml create mode 100644 common/test/data/manual-testing-complete/drafts/vertical/ccc9fb7ada404ba0986b3fca4056b831.xml create mode 100644 common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.html create mode 100644 common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.xml create mode 100644 common/test/data/manual-testing-complete/info/handouts.html create mode 100644 common/test/data/manual-testing-complete/info/updates.html create mode 100644 common/test/data/manual-testing-complete/info/updates.items.json create mode 100644 common/test/data/manual-testing-complete/lti/b05c0297100f41e888ddadf82b3ce1b2.xml create mode 100644 common/test/data/manual-testing-complete/policies/2014/grading_policy.json create mode 100644 common/test/data/manual-testing-complete/policies/2014/policy.json create mode 100644 common/test/data/manual-testing-complete/policies/assets.json create mode 100644 common/test/data/manual-testing-complete/problem/009f9b6b79404206a2c316117099fed5.xml create mode 100644 common/test/data/manual-testing-complete/problem/11bbd906f12d4cbdbca3050d68cea79f.xml create mode 100644 common/test/data/manual-testing-complete/problem/29fe8cca3a99412c801c5b9ce53780c5.xml create mode 100644 common/test/data/manual-testing-complete/problem/2f7da8477d8748f0aad0f7fc2134b84f.xml create mode 100644 common/test/data/manual-testing-complete/problem/35501134637b4c2b8cfe07ba5e6492bb.xml create mode 100644 common/test/data/manual-testing-complete/problem/39bb74b14f674ea1ab25f52bac9eb83b.xml create mode 100644 common/test/data/manual-testing-complete/problem/3a1e2c95f8a54bc98b65e9373dafc86e.xml create mode 100644 common/test/data/manual-testing-complete/problem/427a1515100a4d08b959ba5852a1630d.xml create mode 100644 common/test/data/manual-testing-complete/problem/440e298f5b804377bc31d06a3f783a5c.xml create mode 100644 common/test/data/manual-testing-complete/problem/45c30a061c3f473499a32d7e14f4a750.xml create mode 100644 common/test/data/manual-testing-complete/problem/45c317cb93d447f293ce982a2eccd77d.xml create mode 100644 common/test/data/manual-testing-complete/problem/5c49dcff565848b8a4834ee8b3beeebc.xml create mode 100644 common/test/data/manual-testing-complete/problem/5e3b300353974a42875052a21823e39b.xml create mode 100644 common/test/data/manual-testing-complete/problem/70257670b9dd45c8afd5abd3c9fe606f.xml create mode 100644 common/test/data/manual-testing-complete/problem/7eff0366d53045c1b423ee988d344a13.xml create mode 100644 common/test/data/manual-testing-complete/problem/8a5a7653bf804a968c17d398cb91aa4e.xml create mode 100644 common/test/data/manual-testing-complete/problem/9497fab9cc6f4187ba17d23731b614bf.xml create mode 100644 common/test/data/manual-testing-complete/problem/9992192a14ce47fcb71f77d7e77c821c.xml create mode 100644 common/test/data/manual-testing-complete/problem/a473cecce312487a8339995bde24be53.xml create mode 100644 common/test/data/manual-testing-complete/problem/a5ca9b0f09cc4798bb53e5840e625301.xml create mode 100644 common/test/data/manual-testing-complete/problem/b6b80c6b383f4c3c80efc32b968368dc.xml create mode 100644 common/test/data/manual-testing-complete/problem/c2ee6e8917fe4c97ac99d7b616ff0b89.xml create mode 100644 common/test/data/manual-testing-complete/problem/d0bdd7c3487d4f94b7bcd207f110c20a.xml create mode 100644 common/test/data/manual-testing-complete/problem/d30b3812201a46af88d30bd4c7c009e6.xml create mode 100644 common/test/data/manual-testing-complete/problem/dcada38f8944442799ac2fed42201641.xml create mode 100644 common/test/data/manual-testing-complete/problem/eb248c5260254ce094c157ffb8352d16.xml create mode 100644 common/test/data/manual-testing-complete/sequential/01a66b857fad4221b01f742ec0e86c49.xml create mode 100644 common/test/data/manual-testing-complete/sequential/0aa765632f4d4b84ad8d96f41cec5825.xml create mode 100644 common/test/data/manual-testing-complete/sequential/0cd40e13b4a045aba07d4f626c8b32de.xml create mode 100644 common/test/data/manual-testing-complete/sequential/0d0e69d08e95436fbbf1be4c6dfec48a.xml create mode 100644 common/test/data/manual-testing-complete/sequential/0e86943b2cb54a56a1a14c13da3f388d.xml create mode 100644 common/test/data/manual-testing-complete/sequential/158963ff751747e3945f3834dd30e5fb.xml create mode 100644 common/test/data/manual-testing-complete/sequential/17d39634673a4151b6f337a5c216eb52.xml create mode 100644 common/test/data/manual-testing-complete/sequential/1dd8f4178f2a4b9cb09f37c5d6230f9d.xml create mode 100644 common/test/data/manual-testing-complete/sequential/21b1a19dbe264a98b06ce9567a3e4171.xml create mode 100644 common/test/data/manual-testing-complete/sequential/2db8efb4573842c8854648a3ac9e52a4.xml create mode 100644 common/test/data/manual-testing-complete/sequential/2e23db09e8b5472cbae9624208e3e1d7.xml create mode 100644 common/test/data/manual-testing-complete/sequential/30e61af5a8d74833bb66e19ccea1e5d8.xml create mode 100644 common/test/data/manual-testing-complete/sequential/313d1bb9031c4d529c7018248d6fff52.xml create mode 100644 common/test/data/manual-testing-complete/sequential/345d618ca88944668d86586f83bff338.xml create mode 100644 common/test/data/manual-testing-complete/sequential/363603b2c7d34d26a3baa9de29be2211.xml create mode 100644 common/test/data/manual-testing-complete/sequential/3aa3759deca94e1783b7dc9c148cd483.xml create mode 100644 common/test/data/manual-testing-complete/sequential/3b115f75b12b42699a3148ea0ffee76b.xml create mode 100644 common/test/data/manual-testing-complete/sequential/4026dba735fe450faf81f766c63bef8b.xml create mode 100644 common/test/data/manual-testing-complete/sequential/47b7432f998c45abad9f79effeda60bf.xml create mode 100644 common/test/data/manual-testing-complete/sequential/4cd0b5b3dd3343b5937fea80ec5005cc.xml create mode 100644 common/test/data/manual-testing-complete/sequential/4eadf76912cd436b9d698c8759784d8d.xml create mode 100644 common/test/data/manual-testing-complete/sequential/508e5fa820b643b1a329e2ab5dd59393.xml create mode 100644 common/test/data/manual-testing-complete/sequential/589cf38cfb22450a901818b48d4b7ff5.xml create mode 100644 common/test/data/manual-testing-complete/sequential/5c33f2c2b3aa45f5bfbf7bf7f9bcb2ff.xml create mode 100644 common/test/data/manual-testing-complete/sequential/613404c6df1445ed81f12883dde30a41.xml create mode 100644 common/test/data/manual-testing-complete/sequential/67c9c6cd94fe498fb1dc965c35eca3d3.xml create mode 100644 common/test/data/manual-testing-complete/sequential/6c4c10b89cc449fcbde0006c47e3ee26.xml create mode 100644 common/test/data/manual-testing-complete/sequential/7942fe1a06aa439092aabe3615d91b15.xml create mode 100644 common/test/data/manual-testing-complete/sequential/7a598df4cc4345138332c1d19ecd963d.xml create mode 100644 common/test/data/manual-testing-complete/sequential/7fe9686bb8fe4edba75867ddd1d7b1c5.xml create mode 100644 common/test/data/manual-testing-complete/sequential/8ad25eec767f40ae81bcc7555778c91e.xml create mode 100644 common/test/data/manual-testing-complete/sequential/948737f132254c2aa65f6024edee7e68.xml create mode 100644 common/test/data/manual-testing-complete/sequential/aa338c6acd1e498ca8d4ccf6ded72f9b.xml create mode 100644 common/test/data/manual-testing-complete/sequential/ac37154b78454cecaad080221cf1dbd5.xml create mode 100644 common/test/data/manual-testing-complete/sequential/b7ebe0f048e9466e9ef32e7815fb5a93.xml create mode 100644 common/test/data/manual-testing-complete/sequential/b857bc7d37c74e38b51741340da91dcd.xml create mode 100644 common/test/data/manual-testing-complete/sequential/bb9bc5a7d0d945cea2a77e3d85f28c41.xml create mode 100644 common/test/data/manual-testing-complete/sequential/bba59b360c344a1db0eb3239e2381484.xml create mode 100644 common/test/data/manual-testing-complete/sequential/bd0b30ef8bea48ff86559be1cbe2fa49.xml create mode 100644 common/test/data/manual-testing-complete/sequential/c18b834531e14a3fb070dabf16380541.xml create mode 100644 common/test/data/manual-testing-complete/sequential/c59bd9a5a7ec4b31a95515c14bb9f552.xml create mode 100644 common/test/data/manual-testing-complete/sequential/c681c865017d4c0ea931f7345aa79277.xml create mode 100644 common/test/data/manual-testing-complete/sequential/c76b46a765e24c1f9f51de2b49131be0.xml create mode 100644 common/test/data/manual-testing-complete/sequential/ca6fc483ef064fa7b275f9e712f041f6.xml create mode 100644 common/test/data/manual-testing-complete/sequential/d0e7879a63a4429fb1223a22443681b9.xml create mode 100644 common/test/data/manual-testing-complete/sequential/d49ee0959c564c8d8b55660ca5fa9bcd.xml create mode 100644 common/test/data/manual-testing-complete/sequential/d6d7e96bf6a441a4b4e7c7eac0d0e573.xml create mode 100644 common/test/data/manual-testing-complete/sequential/d7d631967807476485aa26ba0c39a992.xml create mode 100644 common/test/data/manual-testing-complete/sequential/d912a92ed03d4f818661a1636b8a6f9b.xml create mode 100644 common/test/data/manual-testing-complete/sequential/dc2b88afd57241f9bcd2dcbd03c6c2f3.xml create mode 100644 common/test/data/manual-testing-complete/sequential/f09502cf408742c2aa3c92705ab1dce7.xml create mode 100644 common/test/data/manual-testing-complete/sequential/f0e52b8eec5647ffb6013aef62b3d309.xml create mode 100644 common/test/data/manual-testing-complete/sequential/f585fca58e5c4fe8ab231a5f62701de3.xml create mode 100644 common/test/data/manual-testing-complete/sequential/f58fd90cbd794cad881692d3b6e5cdbf.xml create mode 100644 common/test/data/manual-testing-complete/sequential/f9372e3b199a4986a46c8d18e094b931.xml create mode 100644 common/test/data/manual-testing-complete/sequential/fbbe37e2980c4f0d96b0b8ac45c0378b.xml create mode 100644 common/test/data/manual-testing-complete/static/1.pdf create mode 100644 common/test/data/manual-testing-complete/static/Screen Shot 2013-04-16 at 1.43.36 PM.png create mode 100644 common/test/data/manual-testing-complete/static/subs_OEoXaMPEzfM.srt.sjson create mode 100644 common/test/data/manual-testing-complete/tabs/8e4cce2b4aaf4ba28b1220804619e41f.html create mode 100644 common/test/data/manual-testing-complete/vertical/0a1602f0f191422ba5ed727f903627b2.xml create mode 100644 common/test/data/manual-testing-complete/vertical/0b693c2547674645a8afd0be4c57b8b7.xml create mode 100644 common/test/data/manual-testing-complete/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml create mode 100644 common/test/data/manual-testing-complete/vertical/18b50987e2d84bcca2cfc74ef6b25275.xml create mode 100644 common/test/data/manual-testing-complete/vertical/193fbc9bb9184ba685d01430cb2025d3.xml create mode 100644 common/test/data/manual-testing-complete/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml create mode 100644 common/test/data/manual-testing-complete/vertical/224cff129b784243a79f08dd7203151c.xml create mode 100644 common/test/data/manual-testing-complete/vertical/3a7305c59c254ce9814093f98b913e8a.xml create mode 100644 common/test/data/manual-testing-complete/vertical/4502126328484ed58c87e7ba3b0fa21d.xml create mode 100644 common/test/data/manual-testing-complete/vertical/4aeec80b652c4cc2bf38c248d6440c9f.xml create mode 100644 common/test/data/manual-testing-complete/vertical/50c89b9bf3bc40c2bb723fc7d1c756d1.xml create mode 100644 common/test/data/manual-testing-complete/vertical/53142c50e5284f9798e8e0cab8471528.xml create mode 100644 common/test/data/manual-testing-complete/vertical/536b3582ce354e9da79f157077172bb3.xml create mode 100644 common/test/data/manual-testing-complete/vertical/572f898249da49bc9ee426804302aa24.xml create mode 100644 common/test/data/manual-testing-complete/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml create mode 100644 common/test/data/manual-testing-complete/vertical/6b1a4d545905465ca491f0115b6e759b.xml create mode 100644 common/test/data/manual-testing-complete/vertical/6b54ae89dc554f77b4dd94e1d9911df6.xml create mode 100644 common/test/data/manual-testing-complete/vertical/6cb018f4cc884e98b9df621b4cc54a29.xml create mode 100644 common/test/data/manual-testing-complete/vertical/81323bb6c1cd4b83b8cd1e9b8fb119a7.xml create mode 100644 common/test/data/manual-testing-complete/vertical/856a9709ac974c92b539710bb64fb4c5.xml create mode 100644 common/test/data/manual-testing-complete/vertical/93113ad02cac43659c0e1833880408f3.xml create mode 100644 common/test/data/manual-testing-complete/vertical/999c7e94329144cdb844aec9671fc8ca.xml create mode 100644 common/test/data/manual-testing-complete/vertical/99ab6b79e2b6426f9bc7e07e8540a655.xml create mode 100644 common/test/data/manual-testing-complete/vertical/a99ab4f608de41e9927d281dcfbd4343.xml create mode 100644 common/test/data/manual-testing-complete/vertical/b34ef5e4257b4a34a60c2679aeeb5455.xml create mode 100644 common/test/data/manual-testing-complete/vertical/bcb995ca53934a7b8aee27f81d96d189.xml create mode 100644 common/test/data/manual-testing-complete/vertical/be87d2061b8f41be87293fcc643514c7.xml create mode 100644 common/test/data/manual-testing-complete/vertical/c641d8fe821440bea1781287d05fdc82.xml create mode 100644 common/test/data/manual-testing-complete/vertical/c7c39a80da5f4ac4935ab83790528063.xml create mode 100644 common/test/data/manual-testing-complete/vertical/c87ff358615846b08b85f66ebce94fb3.xml create mode 100644 common/test/data/manual-testing-complete/vertical/cd6b719c0f9c46e7abd2d44c37d49cd8.xml create mode 100644 common/test/data/manual-testing-complete/vertical/da4f07aceaf542f5b1807c779a719067.xml create mode 100644 common/test/data/manual-testing-complete/vertical/ddd289f35194456eaa470a3fd0d08ca2.xml create mode 100644 common/test/data/manual-testing-complete/vertical/de8fb6b7e0904de3a39db9d4bfaab6a2.xml create mode 100644 common/test/data/manual-testing-complete/vertical/e34798bf546a4178ab76afe3a5f729af.xml create mode 100644 common/test/data/manual-testing-complete/vertical/e81c7ddcf5434387a2a6163ca973520c.xml create mode 100644 common/test/data/manual-testing-complete/vertical/e8a308821e204375905bedc227fa769f.xml create mode 100644 common/test/data/manual-testing-complete/vertical/e9c213fb60134b93a3b1b4ba882cb1a7.xml create mode 100644 common/test/data/manual-testing-complete/vertical/ec70919ea9c24ed192e37e7d022d4133.xml create mode 100644 common/test/data/manual-testing-complete/vertical/f3387cc263aa4e2e9070b6954a9c1b90.xml create mode 100644 common/test/data/manual-testing-complete/video/37ec61cf011c429db8cb5f49b47681f7.xml create mode 100644 common/test/data/manual-testing-complete/word_cloud/5d607a74f7214eaa92079c3195e0badb.xml diff --git a/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py b/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py index 23a8c21f6b..0ea2fae369 100644 --- a/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py +++ b/common/lib/xmodule/xmodule/modulestore/tests/test_cross_modulestore_import_export.py @@ -235,7 +235,7 @@ MODULESTORE_SETUPS = ( MixedModulestoreBuilder([('split', VersioningModulestoreBuilder())]), ) CONTENTSTORE_SETUPS = (MongoContentstoreBuilder(),) -COURSE_DATA_NAMES = ('toy', 'test_unicode') +COURSE_DATA_NAMES = ('toy', 'manual-testing-complete') @ddt.ddt diff --git a/common/lib/xmodule/xmodule/tests/__init__.py b/common/lib/xmodule/xmodule/tests/__init__.py index eaedb54da7..824652fcf1 100644 --- a/common/lib/xmodule/xmodule/tests/__init__.py +++ b/common/lib/xmodule/xmodule/tests/__init__.py @@ -239,7 +239,7 @@ class CourseComparisonTest(unittest.TestCase): self.assertEqual( exp_value, actual_value, - "Field {} doesn't match between usages {} and {}: {!r} != {!r}".format( + "Field {!r} doesn't match between usages {} and {}: {!r} != {!r}".format( field_name, expected_item.scope_ids.usage_id, actual_item.scope_ids.usage_id, diff --git a/common/test/data/manual-testing-complete/about/overview.html b/common/test/data/manual-testing-complete/about/overview.html new file mode 100644 index 0000000000..33911ae1ee --- /dev/null +++ b/common/test/data/manual-testing-complete/about/overview.html @@ -0,0 +1,47 @@ +
+

About This Course

+

Include your long course description here. The long course description should contain 150-400 words.

+ +

This is paragraph 2 of the long course description. Add more paragraphs as needed. Make sure to enclose them in paragraph tags.

+
+ +
+

Prerequisites

+

Add information about course prerequisites here.

+
+ +
+

Course Staff

+
+
+ Course Staff Image #1 +
+ +

Staff Member #1

+

Biography of instructor/staff member #1

+
+ +
+
+ Course Staff Image #2 +
+ +

Staff Member #2

+

Biography of instructor/staff member #2

+
+
+ +
+
+

Frequently Asked Questions

+
+

Do I need to buy a textbook?

+

No, a free online version of Chemistry: Principles, Patterns, and Applications, First Edition by Bruce Averill and Patricia Eldredge will be available, though you can purchase a printed version (published by FlatWorld Knowledge) if you’d like.

+
+ +
+

Question #2

+

Your answer would be displayed here.

+
+
+
diff --git a/common/test/data/manual-testing-complete/about/short_description.html b/common/test/data/manual-testing-complete/about/short_description.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/common/test/data/manual-testing-complete/annotatable/0edc5e96bacc449eaae9fe8b5be75994.xml b/common/test/data/manual-testing-complete/annotatable/0edc5e96bacc449eaae9fe8b5be75994.xml new file mode 100644 index 0000000000..2984d94bd4 --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/0edc5e96bacc449eaae9fe8b5be75994.xml @@ -0,0 +1,15 @@ + + +

Enter your (optional) instructions for the exercise in HTML format.

+

Annotations are specified by an <annotation> tag which may may have the following attributes:

+
    +
  • title (optional). Title of the annotation. Defaults to Commentary if omitted.
  • +
  • body (required). Text of the annotation.
  • +
  • problem (optional). Numeric index of the problem associated with this annotation. This is a zero-based index, so the first problem on the page would have problem="0".
  • +
  • highlight (optional). Possible values: yellow, red, orange, green, blue, or purple. Defaults to yellow if this attribute is omitted.
  • +
+
+

Add your HTML with annotation spans here.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam.

+

Nulla facilisi. Pellentesque id vestibulum libero. Suspendisse potenti. Morbi scelerisque nisi vitae felis dictum mattis. Nam sit amet magna elit. Nullam volutpat cursus est, sit amet sagittis odio vulputate et. Curabitur euismod, orci in vulputate imperdiet, augue lorem tempor purus, id aliquet augue turpis a est. Aenean a sagittis libero. Praesent fringilla pretium magna, non condimentum risus elementum nec. Pellentesque faucibus elementum pharetra. Pellentesque vitae metus eros.

+
diff --git a/common/test/data/manual-testing-complete/annotatable/0f9fc83830694ffc8fead4fcf7aa8d39.xml b/common/test/data/manual-testing-complete/annotatable/0f9fc83830694ffc8fead4fcf7aa8d39.xml new file mode 100644 index 0000000000..2984d94bd4 --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/0f9fc83830694ffc8fead4fcf7aa8d39.xml @@ -0,0 +1,15 @@ + + +

Enter your (optional) instructions for the exercise in HTML format.

+

Annotations are specified by an <annotation> tag which may may have the following attributes:

+
    +
  • title (optional). Title of the annotation. Defaults to Commentary if omitted.
  • +
  • body (required). Text of the annotation.
  • +
  • problem (optional). Numeric index of the problem associated with this annotation. This is a zero-based index, so the first problem on the page would have problem="0".
  • +
  • highlight (optional). Possible values: yellow, red, orange, green, blue, or purple. Defaults to yellow if this attribute is omitted.
  • +
+
+

Add your HTML with annotation spans here.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam.

+

Nulla facilisi. Pellentesque id vestibulum libero. Suspendisse potenti. Morbi scelerisque nisi vitae felis dictum mattis. Nam sit amet magna elit. Nullam volutpat cursus est, sit amet sagittis odio vulputate et. Curabitur euismod, orci in vulputate imperdiet, augue lorem tempor purus, id aliquet augue turpis a est. Aenean a sagittis libero. Praesent fringilla pretium magna, non condimentum risus elementum nec. Pellentesque faucibus elementum pharetra. Pellentesque vitae metus eros.

+
diff --git a/common/test/data/manual-testing-complete/annotatable/473ab1a4c5064c919ae483ecc86a8df7.xml b/common/test/data/manual-testing-complete/annotatable/473ab1a4c5064c919ae483ecc86a8df7.xml new file mode 100644 index 0000000000..ed2bd7edc7 --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/473ab1a4c5064c919ae483ecc86a8df7.xml @@ -0,0 +1,5 @@ + +

This is an example annotation.

+

This page is required to post a comment These are one of the tags. Thanks

+

Check this. This is something else. Specialized problems are advanced problems such as annotations, open response assessments, and word clouds. These problems are available through the Advanced component

+
diff --git a/common/test/data/manual-testing-complete/annotatable/5b18cea952a84fb1a34db345a476175a.xml b/common/test/data/manual-testing-complete/annotatable/5b18cea952a84fb1a34db345a476175a.xml new file mode 100644 index 0000000000..40c0ca737a --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/5b18cea952a84fb1a34db345a476175a.xml @@ -0,0 +1,20 @@ + + +

Enter your (optional) instructions for the exercise in HTML format.

+

Annotations are specified by an <annotation> tag which may may have the following attributes:

+
    +
  • title (optional). Title of the annotation. Defaults to Commentary if omitted.
  • +
  • body (required). Text of the annotation.
  • +
  • problem (optional). Numeric index of the problem associated with this annotation. This is a zero-based index, so the first problem on the page would have problem="0".
  • +
  • highlight (optional). Possible values: yellow, red, orange, green, blue, or purple. Defaults to yellow if this attribute is omitted.
  • +
+
+

Add your HTML with annotation spans here.

+

+ + The Stanford Hills + +

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam.

+

Nulla facilisi. Pellentesque id vestibulum libero. Suspendisse potenti. Morbi scelerisque nisi vitae felis dictum mattis. Nam sit amet magna elit. Nullam volutpat cursus est, sit amet sagittis odio vulputate et. Curabitur euismod, orci in vulputate imperdiet, augue lorem tempor purus, id aliquet augue turpis a est. Aenean a sagittis libero. Praesent fringilla pretium magna, non condimentum risus elementum nec. Pellentesque faucibus elementum pharetra. Pellentesque vitae metus eros.

+
diff --git a/common/test/data/manual-testing-complete/annotatable/90e352a0316a4dc68baaca0308f002e3.xml b/common/test/data/manual-testing-complete/annotatable/90e352a0316a4dc68baaca0308f002e3.xml new file mode 100644 index 0000000000..49fd850aa1 --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/90e352a0316a4dc68baaca0308f002e3.xml @@ -0,0 +1,26 @@ + + +

+ Hour 1 has four separate (two-part) annotation questions. To complete an Annotation Exercise in this course, hover your mouse over each highlighted portion of the focus text. When the Instructor prompt appears, read the question and click "Reply to Annotation." This will take you to a two-part task: an open-ended response question, and a question that will be answered by choosing one of multiple semantic tags. +

+

Each of these exercises, one per hour, is meant to improve your understanding of the given text (in this case, Hour 1 Text C) by helping you analyze the context after you finish your slow reading of the text. But these exercises of annotation after slow reading do much more than that. They will build up your ability to understand not only the context but also [[1]] all other texts that contain similar contexts and [[2]] all the texts you will be reading in general. I can make this big promise because the texts that you are analyzing are part of a system, and the systematic thinking that went into the original texts can be decoded by analyzing the building blocks of the system. The way you analyze these building blocks is by trying to figure out how they are connected to the other building blocks in the system. That is what these annotation exercises are all about: they help you figure out the connections. And the more things you figure out, the more mental connections you can make on your own. But the exercise of making such connections through your annotations is a gradual process, and you need to be patient with yourself. You will get better and better at it, I am sure. The more connections you are able to make, the more powerful will be your reading ability. That is the beauty of analyzing something that was created by way of systematic thinking in an ancient tradition that took many centuries to develop (I estimate at least ten centuries). The tradition actually helps you think about the tradition. It will help you figure things out.

+

By now you have seen that I really like the expression figure out: it puts the emphasis on reading out of the text, not into the text. When you read into the text, you lose sight of the system that had built that text.

+

In the next exercise, I will switch metaphors in describing the system that had built the text. In the present exercise, I have been using the metaphor of building a structure with building blocks. In the next exercise I will start using the metaphor of weaving a fabric.

+

(Here is a working definition of metaphor: it is an expression of meaning where one thing is substituted for another thing. For example, when we use the metaphor “thread of thought,” the idea of a thread, as used by someone who is weaving or sewing, is substituted for the idea of a way of thinking. For another example: when Nietzsche speaks about reading with delicate fingers, the idea of a goldsmith touching gold is substituted for the idea of reading a text with the eyes.)

+

The main goal of this first exercise is to start practicing the art of slow reading. The best way to make a start, I think, is to read a story within a story. The inner story in this exercise is the story of the hero Hēraklēs, as retold by Agamemnon and as quoted by “Homer” in lines 78-138 of Iliad XIX. The outer story is the story of the Iliad itself, as retold by “Homer.”

+

So the story within a story is 60 lines long, while the story of the Iliad itself is over 15,000 lines long. Your task in this exercise is to do a close reading of the short story of 60 lines, which is embedded in the long story of the Iliad.

+

You can perform this task even if you haven’t started reading the Iliad, since I can summarize for you all 15,000+ lines of this huge epic in just three sentences here:

+

+

    +
  1. Achilles experiences a cosmic kind of anger, mēnis, after being insulted in a quarrel with Agamemnon, who is superior to Achilles socially but is inferior to him as a hero.
  2. +
    +
  3. As Achilles sits out the war, staying in his shelter, the Achaeans (= Danaans = Argives) are in danger of becoming the losers while the Trojans become the winners.
  4. +
    +
  5. The Achaeans are demoralized, and many of their leaders are wounded, including Agamemnon, who finally decides to settle his quarrel with Achilles.
  6. +
+

+

Now that you have the “big picture” of the Iliad as the outer story, you can have a very interesting experience as you do your slow reading of the inner story, contained in the 60 lines spoken by Agamemnon and telling the story of Hēraklēs.

+

Here is something to keep in mind. The research of the great literary critic I. A. Richards, who was once a professor at Harvard University (he retired in 1963 and died in 1979), shows that the relationship of any kind of an outer story to any kind of an inner story is not necessarily a “one-way street,” as it were, leading from the outer into the inner story: there can also be a “two-way street,” with the inner story communicating with the outer story as well as the other way around. Where I use the expressions “outer story” and “inner story,” Richards used the terms “tenor” and “vehicle.” I have always found those terms rather forbidding, but, as you see, they stand for things that are fairly easy to explain.

+
+

|76 Then Agamemnon, the king of men, spoke up at their meeting, |77 right there from the place where he was sitting, not even standing up in the middle of the assembly. |78 “Near and dear ones,” said he, “Danaan [= Achaean] heroes, attendants [therapontes] of Arēs! |79 It is a good thing to listen when a man stands up to speak, and it is not seemly |80 to speak in relay after him. It would be hard for someone to do that, even if he is a practiced speaker. |81 For how could any man in an assembly either hear anything when there is an uproar |82 or say anything? Even a public speaker who speaks clearly will be disconcerted by it. |83 What I will do is to make a declaration addressed to [Achilles] the son of Peleus. As for the rest of you |84 Argives [= Achaeans], you should understand and know well, each one of you, the words [mūthos] that I say for the record. |85 By now the Achaeans have been saying these words [mūthos] to me many times, |86 and they have been blaming me. But I am not responsible [aitios]. |87 No, those who are really responsible are Zeus and Fate [Moira] and the Fury [Erinys] who roams in the mist. |88 They are the ones who, at the public assembly, had put savage derangement [atē] into my thinking [phrenes] |89 on that day when I myself deprived Achilles of his honorific portion [geras]. |90 But what could I do? The god is the one who brings everything to its fulfillment [teleutân]. |91 That goddess atē, senior daughter of Zeus - she makes everyone veer off-course [aâsthai], |92 that disastrous one [oulomenē], the one who has delicate steps. She never makes contact with the ground of the threshold, |93 never even going near it, but instead she hovers over the heads of men, bringing harm to mortals. |94 In her harmfulness, she has incapacitated others as well [besides me], and I have in mind one person in particular. |95 Yes, once upon a time even Zeus veered off-course [aâsthai], who is said to be the best |96 among men and gods. Even he |97 was deceived; Hērā did it, with her devious ways of thinking, female that she is. |98 It happened on the day when the mighty Hērakleēs |99 was about to be born of Alkmene in Thebes, the city garlanded by good walls. |100 He [= Zeus], making a formal declaration [eukhesthai], spoke up at a meeting of all the gods and said: |101 “hear me, all gods and all goddesses, |102 and let me say to you what the heart [thūmos] in my chest tells me to say. |103 Today the goddess who presides over the pains of childbirth, Eileithuia, will help bring forth a man into the light, |104 revealing him, and he will be king over all the people who live around him. |105 He comes from an ancestral line of men who are descended from blood that comes from me.” |106 Thinking devious thoughts, the goddess Hērā addressed him [= Zeus]: |107 “You will be mistaken, and you will not be able to make a fulfillment [telos] of the words [mūthos] that you have spoken for the record. |108 But come, Olympian god, swear for me a binding oath: |109 swear that he will really be king over all the people who live around him, |110 I mean, the one who on this day shall fall to the ground between the legs of a woman |111 who is descended from men who come from your line of ancestry, from blood that comes from you.” |112 So she spoke. And Zeus did not at all notice [noeîn] her devious thinking, |113 but he swore a great oath. And right then and there, he veered off-course [aâsthai] in a big way. |114 Meanwhile, Hērā sped off, leaving the ridges of Olympus behind, |115 and swiftly she reached Achaean Argos. She knew that she would find there |116 the strong wife of Sthenelos son of Perseus. |117 She was pregnant with a dear son, and she was in her eighth month. |118 And she brought him forth into the light, even though he was still one month short. |119 Meanwhile she put a pause on the time of delivery for Alkmene, holding back the divine powers of labor, the Eileithuiai. |120 And then she herself went to tell the news to Zeus the son of Kronos, saying: |121 “Zeus the father, you with the gleaming thunderbolt, I will put a word into your thoughts: |122 there has just been born a man, a noble one, who will be king over the Argives. |123 He is Eurystheus son of Sthenelos son of Perseus. |124 He is from your line of ancestry, and it is not unseemly for him to be king over the Argives.” |125 So she spoke, and he was struck in his mind [phrēn] with a sharp sorrow [akhos]. |126 And right away she grabbed the goddess atē by the head - that head covered with luxuriant curls - |127 since he was angry in his thinking [phrenes], and he swore a binding oath |128 that never will she come to Olympus and to the starry sky |129 never again will she come back, that goddess atē, who makes everyone veer off-course [aâsthai]. |130 And so saying he threw her down from the starry sky, |131 having whirled her around in his hand. And then she [= atē] came to the fields where mortals live and work. |132 He [= Zeus] always mourned the fact that she ever existed, every time he saw how his own dear son |133 was having one of his degrading Labors [āthloi] to work on. |134 So also I [= Agamemnon], while the great Hector, the one with the gleaming helmet, |135 was destroying the Argives [= Achaeans] at the sterns of the beached ships, |136 was not able to keep out of my mind the veering [atē] I experienced once I veered off-course [aâsthai]. |137 But since I did veer off-course [aâsthai] and since Zeus took away from me my thinking, |138 I now want to make amends, and to give untold amounts of compensation.

Iliad XIX 76-138

+
diff --git a/common/test/data/manual-testing-complete/annotatable/c0a3b20598dc4ebba704a51a309251db.xml b/common/test/data/manual-testing-complete/annotatable/c0a3b20598dc4ebba704a51a309251db.xml new file mode 100644 index 0000000000..2984d94bd4 --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/c0a3b20598dc4ebba704a51a309251db.xml @@ -0,0 +1,15 @@ + + +

Enter your (optional) instructions for the exercise in HTML format.

+

Annotations are specified by an <annotation> tag which may may have the following attributes:

+
    +
  • title (optional). Title of the annotation. Defaults to Commentary if omitted.
  • +
  • body (required). Text of the annotation.
  • +
  • problem (optional). Numeric index of the problem associated with this annotation. This is a zero-based index, so the first problem on the page would have problem="0".
  • +
  • highlight (optional). Possible values: yellow, red, orange, green, blue, or purple. Defaults to yellow if this attribute is omitted.
  • +
+
+

Add your HTML with annotation spans here.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam.

+

Nulla facilisi. Pellentesque id vestibulum libero. Suspendisse potenti. Morbi scelerisque nisi vitae felis dictum mattis. Nam sit amet magna elit. Nullam volutpat cursus est, sit amet sagittis odio vulputate et. Curabitur euismod, orci in vulputate imperdiet, augue lorem tempor purus, id aliquet augue turpis a est. Aenean a sagittis libero. Praesent fringilla pretium magna, non condimentum risus elementum nec. Pellentesque faucibus elementum pharetra. Pellentesque vitae metus eros.

+
diff --git a/common/test/data/manual-testing-complete/annotatable/e13a327cc54f4e56bda64c5e9627edd1.xml b/common/test/data/manual-testing-complete/annotatable/e13a327cc54f4e56bda64c5e9627edd1.xml new file mode 100644 index 0000000000..2984d94bd4 --- /dev/null +++ b/common/test/data/manual-testing-complete/annotatable/e13a327cc54f4e56bda64c5e9627edd1.xml @@ -0,0 +1,15 @@ + + +

Enter your (optional) instructions for the exercise in HTML format.

+

Annotations are specified by an <annotation> tag which may may have the following attributes:

+
    +
  • title (optional). Title of the annotation. Defaults to Commentary if omitted.
  • +
  • body (required). Text of the annotation.
  • +
  • problem (optional). Numeric index of the problem associated with this annotation. This is a zero-based index, so the first problem on the page would have problem="0".
  • +
  • highlight (optional). Possible values: yellow, red, orange, green, blue, or purple. Defaults to yellow if this attribute is omitted.
  • +
+
+

Add your HTML with annotation spans here.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam.

+

Nulla facilisi. Pellentesque id vestibulum libero. Suspendisse potenti. Morbi scelerisque nisi vitae felis dictum mattis. Nam sit amet magna elit. Nullam volutpat cursus est, sit amet sagittis odio vulputate et. Curabitur euismod, orci in vulputate imperdiet, augue lorem tempor purus, id aliquet augue turpis a est. Aenean a sagittis libero. Praesent fringilla pretium magna, non condimentum risus elementum nec. Pellentesque faucibus elementum pharetra. Pellentesque vitae metus eros.

+
diff --git a/common/test/data/manual-testing-complete/chapter/2df1fe87253549199f30cabb19e14b7c.xml b/common/test/data/manual-testing-complete/chapter/2df1fe87253549199f30cabb19e14b7c.xml new file mode 100644 index 0000000000..72595ba4fa --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/2df1fe87253549199f30cabb19e14b7c.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/3d216a50442f4cd5a1d4171c68f13f58.xml b/common/test/data/manual-testing-complete/chapter/3d216a50442f4cd5a1d4171c68f13f58.xml new file mode 100644 index 0000000000..985cb080a3 --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/3d216a50442f4cd5a1d4171c68f13f58.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/5bb7a5ab824f460580a756a4f347377c.xml b/common/test/data/manual-testing-complete/chapter/5bb7a5ab824f460580a756a4f347377c.xml new file mode 100644 index 0000000000..6732315eb5 --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/5bb7a5ab824f460580a756a4f347377c.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/60989ac1589241ed9dbca0f2070276fd.xml b/common/test/data/manual-testing-complete/chapter/60989ac1589241ed9dbca0f2070276fd.xml new file mode 100644 index 0000000000..28fc110a11 --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/60989ac1589241ed9dbca0f2070276fd.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/test/data/manual-testing-complete/chapter/a0178ff300514e24829e239604dce12c.xml b/common/test/data/manual-testing-complete/chapter/a0178ff300514e24829e239604dce12c.xml new file mode 100644 index 0000000000..a985c184de --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/a0178ff300514e24829e239604dce12c.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/a64a6f63f75d430aa71e6ce113c5b4d2.xml b/common/test/data/manual-testing-complete/chapter/a64a6f63f75d430aa71e6ce113c5b4d2.xml new file mode 100644 index 0000000000..603bb7c275 --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/a64a6f63f75d430aa71e6ce113c5b4d2.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/common/test/data/manual-testing-complete/chapter/ab97a6dbfafd48868c36bed4c8c5391d.xml b/common/test/data/manual-testing-complete/chapter/ab97a6dbfafd48868c36bed4c8c5391d.xml new file mode 100644 index 0000000000..5d4591374c --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/ab97a6dbfafd48868c36bed4c8c5391d.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/be8a64868f2f460ea490e001a25e588d.xml b/common/test/data/manual-testing-complete/chapter/be8a64868f2f460ea490e001a25e588d.xml new file mode 100644 index 0000000000..b9ba8bda9a --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/be8a64868f2f460ea490e001a25e588d.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/ce2fd991d84b4a5ca75350eb8e350627.xml b/common/test/data/manual-testing-complete/chapter/ce2fd991d84b4a5ca75350eb8e350627.xml new file mode 100644 index 0000000000..932cb607d8 --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/ce2fd991d84b4a5ca75350eb8e350627.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/chapter/d68c2861c10a4c9d92a679b4cfc0f924.xml b/common/test/data/manual-testing-complete/chapter/d68c2861c10a4c9d92a679b4cfc0f924.xml new file mode 100644 index 0000000000..a68da5ff12 --- /dev/null +++ b/common/test/data/manual-testing-complete/chapter/d68c2861c10a4c9d92a679b4cfc0f924.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/common/test/data/manual-testing-complete/combinedopenended/3b04d935c8d945c3900708279fb24892.xml b/common/test/data/manual-testing-complete/combinedopenended/3b04d935c8d945c3900708279fb24892.xml new file mode 100644 index 0000000000..4d0d3ceb22 --- /dev/null +++ b/common/test/data/manual-testing-complete/combinedopenended/3b04d935c8d945c3900708279fb24892.xml @@ -0,0 +1,93 @@ + + +

Censorship in the Libraries

+

'All of us can think of a book that we hope none of our children or any other children have taken off the shelf. But if I have the right to remove that book from the shelf -- that work I abhor -- then you also have exactly the same right and so does everyone else. And then we have no books left on the shelf for any of us.' --Katherine Paterson, Author +

+

+ Write a persuasive essay to a newspaper reflecting your views on censorship in libraries. Do you believe that certain materials, such as books, music, movies, magazines, etc., should be removed from the shelves if they are found offensive? Support your position with convincing arguments from your own experience, observations, and/or reading. +

+
+ + + + +Ideas + + + + + + + + +Content + + + + + + + + +Organization + + + + + + + +Style + + + + + + + +Voice + + + + + + + + + + +
diff --git a/common/test/data/manual-testing-complete/combinedopenended/b3aa2db471a9412fbc96302f2e5ea983.xml b/common/test/data/manual-testing-complete/combinedopenended/b3aa2db471a9412fbc96302f2e5ea983.xml new file mode 100644 index 0000000000..3586beaa2e --- /dev/null +++ b/common/test/data/manual-testing-complete/combinedopenended/b3aa2db471a9412fbc96302f2e5ea983.xml @@ -0,0 +1,99 @@ + + +

Censorship in the Libraries

+

'All of us can think of a book that we hope none of our children or any other children have taken off the shelf. But if I have the right to remove that book from the shelf -- that work I abhor -- then you also have exactly the same right and so does everyone else. And then we have no books left on the shelf for any of us.' --Katherine Paterson, Author +

+

+ Write a persuasive essay to a newspaper reflecting your views on censorship in libraries. Do you believe that certain materials, such as books, music, movies, magazines, etc., should be removed from the shelves if they are found offensive? Support your position with convincing arguments from your own experience, observations, and/or reading. +

+
+ + + + +Ideas + + + + + + + + +Content + + + + + + + + +Organization + + + + + + + +Style + + + + + + + +Voice + + + + + + + + + + + Enter essay here. + This is the answer. + {"grader_settings" : "peer_grading.conf", "problem_id" : "6.002x/Welcome/OETest"} + + + +
diff --git a/common/test/data/manual-testing-complete/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml b/common/test/data/manual-testing-complete/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml new file mode 100644 index 0000000000..b135c09760 --- /dev/null +++ b/common/test/data/manual-testing-complete/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml @@ -0,0 +1,93 @@ + + +

Censorship in the Libraries

+

'All of us can think of a book that we hope none of our children or any other children have taken off the shelf. But if I have the right to remove that book from the shelf -- that work I abhor -- then you also have exactly the same right and so does everyone else. And then we have no books left on the shelf for any of us.' --Katherine Paterson, Author +

+

+ Write a persuasive essay to a newspaper reflecting your views on censorship in libraries. Do you believe that certain materials, such as books, music, movies, magazines, etc., should be removed from the shelves if they are found offensive? Support your position with convincing arguments from your own experience, observations, and/or reading. +

+
+ + + + +Ideas + + + + + + + + +Content + + + + + + + + +Organization + + + + + + + +Style + + + + + + + +Voice + + + + + + + + + + +
diff --git a/common/test/data/manual-testing-complete/course.xml b/common/test/data/manual-testing-complete/course.xml new file mode 100644 index 0000000000..5c50015291 --- /dev/null +++ b/common/test/data/manual-testing-complete/course.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/common/test/data/manual-testing-complete/course/2014.xml b/common/test/data/manual-testing-complete/course/2014.xml new file mode 100644 index 0000000000..8c88a504cb --- /dev/null +++ b/common/test/data/manual-testing-complete/course/2014.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/common/test/data/manual-testing-complete/drafts/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml b/common/test/data/manual-testing-complete/drafts/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml new file mode 100644 index 0000000000..4d0d3ceb22 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/combinedopenended/ecfe4fa774ff48d089ae84daa1f6cc75.xml @@ -0,0 +1,93 @@ + + +

Censorship in the Libraries

+

'All of us can think of a book that we hope none of our children or any other children have taken off the shelf. But if I have the right to remove that book from the shelf -- that work I abhor -- then you also have exactly the same right and so does everyone else. And then we have no books left on the shelf for any of us.' --Katherine Paterson, Author +

+

+ Write a persuasive essay to a newspaper reflecting your views on censorship in libraries. Do you believe that certain materials, such as books, music, movies, magazines, etc., should be removed from the shelves if they are found offensive? Support your position with convincing arguments from your own experience, observations, and/or reading. +

+
+ + + + +Ideas + + + + + + + + +Content + + + + + + + + +Organization + + + + + + + +Style + + + + + + + +Voice + + + + + + + + + + +
diff --git a/common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.html b/common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.html new file mode 100644 index 0000000000..83a8ca8360 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.html @@ -0,0 +1 @@ +

What is edX?
An organization established by MIT and Harvard University that will develop an open-source technology platform to deliver online courses. EdX will support Harvard and MIT faculty in conducting research on teaching and learning on campus through tools that enrich classroom and laboratory experiences. At the same time, edX will also reach learners around the world through online course materials. The edX website will begin by hosting MITx and Harvardx content, with the goal of adding content from other universities interested in joining the platform. edX will also support the Harvard and MIT faculty in conducting research on teaching and learning.

\ No newline at end of file diff --git a/common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.xml b/common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.xml new file mode 100644 index 0000000000..36d335e266 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/html/fd120d9503334db5a2ce53c2e0162128.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/problem/29fe8cca3a99412c801c5b9ce53780c5.xml b/common/test/data/manual-testing-complete/drafts/problem/29fe8cca3a99412c801c5b9ce53780c5.xml new file mode 100644 index 0000000000..f2091dc558 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/problem/29fe8cca3a99412c801c5b9ce53780c5.xml @@ -0,0 +1,20 @@ + + +

Some problems may ask for a particular chemical equation. You can practice this technique by writing out the following reaction in the box below.

+
\( \text{H}_2\text{SO}_4 \longrightarrow \text{ H}^+ + \text{ HSO}_4^-\)
+
+ + + + +if chemcalc.chemical_equations_equal(submission[0], 'H2SO4 -> H^+ + HSO4^-'): + correct = ['correct'] +else: + correct = ['incorrect'] + + + +

Some tips:

  • Only real element symbols are permitted.
  • Subscripts are entered with plain text.
  • Superscripts are indicated with a caret (^).
  • The reaction arrow (\(\longrightarrow\)) is indicated with "->".
+ So, you can enter "H2SO4 -> H^+ + HSO4^-".

+ +
diff --git a/common/test/data/manual-testing-complete/drafts/problem/370cfd42f00843578f50e32545356ef1.xml b/common/test/data/manual-testing-complete/drafts/problem/370cfd42f00843578f50e32545356ef1.xml new file mode 100644 index 0000000000..97938ed9f3 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/problem/370cfd42f00843578f50e32545356ef1.xml @@ -0,0 +1,22 @@ + +

+A multiple choice problem presents radio buttons for student +input. Students can only select a single option presented. Multiple Choice questions have been the subject of many areas of research due to the early invention and adoption of bubble sheets.

+

One of the main elements that goes into a good multiple choice question is the existence of good distractors. That is, each of the alternate responses presented to the student should be the result of a plausible mistake that a student might make. +

+

What Apple device competed with the portable CD player?

+ + + The iPad + Napster + The iPod + The vegetable peeler + + + +
+

Explanation

+

The release of the iPod allowed consumers to carry their entire music library with them in a format that did not rely on fragile and energy-intensive spinning disks.

+
+
+
diff --git a/common/test/data/manual-testing-complete/drafts/problem/5904f30aba7a41d3ab1609e58bb5a6c2.xml b/common/test/data/manual-testing-complete/drafts/problem/5904f30aba7a41d3ab1609e58bb5a6c2.xml new file mode 100644 index 0000000000..3ed441e60d --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/problem/5904f30aba7a41d3ab1609e58bb5a6c2.xml @@ -0,0 +1,3 @@ + +

Sample Choice Response

+
diff --git a/common/test/data/manual-testing-complete/drafts/problem/5c49dcff565848b8a4834ee8b3beeebc.xml b/common/test/data/manual-testing-complete/drafts/problem/5c49dcff565848b8a4834ee8b3beeebc.xml new file mode 100644 index 0000000000..4cd65a4ca3 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/problem/5c49dcff565848b8a4834ee8b3beeebc.xml @@ -0,0 +1,21 @@ + +

+ +A text input problem accepts a line of text from the +student, and evaluates the input for correctness based on an expected +answer. +

+

+The answer is correct if it matches every character of the expected answer. This can be a problem with international spelling, dates, or anything where the format of the answer is not clear. +

+

Which US state has Lansing as its capital?

+ + + + +
+

Explanation

+

Lansing is the capital of Michigan, although it is not Michigan's largest city, or even the seat of the county in which it resides.

+
+
+
diff --git a/common/test/data/manual-testing-complete/drafts/problem/7e39859879f24e8689861024d4f7cb1e.xml b/common/test/data/manual-testing-complete/drafts/problem/7e39859879f24e8689861024d4f7cb1e.xml new file mode 100644 index 0000000000..8083106a8b --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/problem/7e39859879f24e8689861024d4f7cb1e.xml @@ -0,0 +1,33 @@ + + +

+The shapes below can be selected (yellow) or unselected (cyan). +Clicking on them repeatedly will cycle through these two states. +

+

+If the cone is selected (and not the cube), a correct answer will be +generated after pressing "Check". Clicking on either "Check" or "Save" +will register the current state. +

+ + + +
diff --git a/common/test/data/manual-testing-complete/drafts/vertical/006fa27802794e20a0e04e146a7e4e66.xml b/common/test/data/manual-testing-complete/drafts/vertical/006fa27802794e20a0e04e146a7e4e66.xml new file mode 100644 index 0000000000..ac8a439fd4 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/006fa27802794e20a0e04e146a7e4e66.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/084d74e8d1494817ac5661ae5893fd61.xml b/common/test/data/manual-testing-complete/drafts/vertical/084d74e8d1494817ac5661ae5893fd61.xml new file mode 100644 index 0000000000..a7d630ddec --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/084d74e8d1494817ac5661ae5893fd61.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml b/common/test/data/manual-testing-complete/drafts/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml new file mode 100644 index 0000000000..d748ee34fe --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/11b926ee2cde42259b5165b918de0493.xml b/common/test/data/manual-testing-complete/drafts/vertical/11b926ee2cde42259b5165b918de0493.xml new file mode 100644 index 0000000000..6c452a4a1e --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/11b926ee2cde42259b5165b918de0493.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/14d2052331234fd68fdbd984a2ec8396.xml b/common/test/data/manual-testing-complete/drafts/vertical/14d2052331234fd68fdbd984a2ec8396.xml new file mode 100644 index 0000000000..d1bbfee48a --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/14d2052331234fd68fdbd984a2ec8396.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml b/common/test/data/manual-testing-complete/drafts/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml new file mode 100644 index 0000000000..442e9a48b9 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/32b9f88c4c164dd69ae87a0754516267.xml b/common/test/data/manual-testing-complete/drafts/vertical/32b9f88c4c164dd69ae87a0754516267.xml new file mode 100644 index 0000000000..5d6894e29d --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/32b9f88c4c164dd69ae87a0754516267.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/38105f0357534b4999bbc1dcf82c9148.xml b/common/test/data/manual-testing-complete/drafts/vertical/38105f0357534b4999bbc1dcf82c9148.xml new file mode 100644 index 0000000000..adfd04475d --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/38105f0357534b4999bbc1dcf82c9148.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/4755fc0ee7ff4ed19a720b61810064d1.xml b/common/test/data/manual-testing-complete/drafts/vertical/4755fc0ee7ff4ed19a720b61810064d1.xml new file mode 100644 index 0000000000..86b7af628c --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/4755fc0ee7ff4ed19a720b61810064d1.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/47735fdcfbf1444dbabbd5a09df1a790.xml b/common/test/data/manual-testing-complete/drafts/vertical/47735fdcfbf1444dbabbd5a09df1a790.xml new file mode 100644 index 0000000000..32dd168a5a --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/47735fdcfbf1444dbabbd5a09df1a790.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml b/common/test/data/manual-testing-complete/drafts/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml new file mode 100644 index 0000000000..573af5cb85 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/5bac2ffd65ea4f988bcf474fe93257e6.xml b/common/test/data/manual-testing-complete/drafts/vertical/5bac2ffd65ea4f988bcf474fe93257e6.xml new file mode 100644 index 0000000000..6b81989a78 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/5bac2ffd65ea4f988bcf474fe93257e6.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/7897479a19e24871bbbdc02457aa3c0b.xml b/common/test/data/manual-testing-complete/drafts/vertical/7897479a19e24871bbbdc02457aa3c0b.xml new file mode 100644 index 0000000000..607b4bca7e --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/7897479a19e24871bbbdc02457aa3c0b.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/90c15baa6c004d3f90b43af405968de3.xml b/common/test/data/manual-testing-complete/drafts/vertical/90c15baa6c004d3f90b43af405968de3.xml new file mode 100644 index 0000000000..caee607697 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/90c15baa6c004d3f90b43af405968de3.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/9a63361c946c4b6486e233d21b4947be.xml b/common/test/data/manual-testing-complete/drafts/vertical/9a63361c946c4b6486e233d21b4947be.xml new file mode 100644 index 0000000000..3753a4fdf4 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/9a63361c946c4b6486e233d21b4947be.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/a4bfead3b0204b15a988d77a5d7f58f2.xml b/common/test/data/manual-testing-complete/drafts/vertical/a4bfead3b0204b15a988d77a5d7f58f2.xml new file mode 100644 index 0000000000..2e5b189b83 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/a4bfead3b0204b15a988d77a5d7f58f2.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/drafts/vertical/ccc9fb7ada404ba0986b3fca4056b831.xml b/common/test/data/manual-testing-complete/drafts/vertical/ccc9fb7ada404ba0986b3fca4056b831.xml new file mode 100644 index 0000000000..34e05e4c14 --- /dev/null +++ b/common/test/data/manual-testing-complete/drafts/vertical/ccc9fb7ada404ba0986b3fca4056b831.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.html b/common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.html new file mode 100644 index 0000000000..6e7c8bb51e --- /dev/null +++ b/common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.html @@ -0,0 +1,33 @@ +

Link rewrite tests:

+

+ Jump to Sports Problem + Jump to Sports Problem by ID +

+ +

ZOOMING DIAGRAMS

+

Some edX classes use extremely large, extremely detailed graphics. To make it easier to understand we can offer two versions of those graphics, with the zoomed section showing when you click on the main view.

+

The example below is from 7.00x: Introduction to Biology and shows a subset of the biochemical reactions that cells carry out.

+

You can view the chemical structures of the molecules by clicking on them. The magnified view also lists the enzymes involved in each step.

+

Press spacebar to open the magifier.

+
+ + magnify + +
+
+ +
diff --git a/common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.xml b/common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.xml new file mode 100644 index 0000000000..0cbfd76cc9 --- /dev/null +++ b/common/test/data/manual-testing-complete/html/82e9d374eeb944489d5decdb6b8fbd76.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/info/handouts.html b/common/test/data/manual-testing-complete/info/handouts.html new file mode 100644 index 0000000000..c62c811243 --- /dev/null +++ b/common/test/data/manual-testing-complete/info/handouts.html @@ -0,0 +1 @@ +
    Testing
\ No newline at end of file diff --git a/common/test/data/manual-testing-complete/info/updates.html b/common/test/data/manual-testing-complete/info/updates.html new file mode 100644 index 0000000000..4e00610272 --- /dev/null +++ b/common/test/data/manual-testing-complete/info/updates.html @@ -0,0 +1 @@ +

July 15, 2014

Testing
\ No newline at end of file diff --git a/common/test/data/manual-testing-complete/info/updates.items.json b/common/test/data/manual-testing-complete/info/updates.items.json new file mode 100644 index 0000000000..91e099bd06 --- /dev/null +++ b/common/test/data/manual-testing-complete/info/updates.items.json @@ -0,0 +1 @@ +[{"date": "July 15, 2014", "content": "Testing", "status": "visible", "id": 1}] \ No newline at end of file diff --git a/common/test/data/manual-testing-complete/lti/b05c0297100f41e888ddadf82b3ce1b2.xml b/common/test/data/manual-testing-complete/lti/b05c0297100f41e888ddadf82b3ce1b2.xml new file mode 100644 index 0000000000..ae8bed35c1 --- /dev/null +++ b/common/test/data/manual-testing-complete/lti/b05c0297100f41e888ddadf82b3ce1b2.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/policies/2014/grading_policy.json b/common/test/data/manual-testing-complete/policies/2014/grading_policy.json new file mode 100644 index 0000000000..272cb4fec6 --- /dev/null +++ b/common/test/data/manual-testing-complete/policies/2014/grading_policy.json @@ -0,0 +1 @@ +{"GRADER": [{"short_label": "HW", "min_count": 12, "type": "Homework", "drop_count": 2, "weight": 0.15}, {"min_count": 12, "type": "Lab", "drop_count": 2, "weight": 0.15}, {"short_label": "Midterm", "min_count": 1, "type": "Midterm Exam", "drop_count": 0, "weight": 0.3}, {"short_label": "Final", "min_count": 1, "type": "Final Exam", "drop_count": 0, "weight": 0.4}], "GRADE_CUTOFFS": {"Pass": 0.5}} \ No newline at end of file diff --git a/common/test/data/manual-testing-complete/policies/2014/policy.json b/common/test/data/manual-testing-complete/policies/2014/policy.json new file mode 100644 index 0000000000..6fd03ef7e8 --- /dev/null +++ b/common/test/data/manual-testing-complete/policies/2014/policy.json @@ -0,0 +1 @@ +{"course/2014": {"advanced_modules": ["annotatable", "combinedopenended", "peergrading", "lti", "word_cloud"], "show_calculator": true, "display_name": "Manual Smoke Test Course 1", "tabs": [{"type": "courseware", "name": "Courseware"}, {"type": "course_info", "name": "Course Info"}, {"type": "textbooks", "name": "Textbooks"}, {"type": "discussion", "name": "Discussion"}, {"type": "wiki", "name": "Wiki"}, {"type": "progress", "name": "Progress"}, {"type": "pdf_textbooks", "name": "Textbooks"}, {"type": "open_ended", "name": "Open Ended Panel"}], "discussion_topics": {"General": {"id": "i4x-ManTestX-ManTest1-course-2014"}}, "start": "2014-06-26T00:00:00Z", "pdf_textbooks": [{"tab_title": "An Example Paper", "id": "0An_Example_Paper", "chapters": [{"url": "/static/1.pdf", "title": "Introduction "}]}], "lti_passports": ["ims:12345:secret"], "show_chat": true}} \ No newline at end of file diff --git a/common/test/data/manual-testing-complete/policies/assets.json b/common/test/data/manual-testing-complete/policies/assets.json new file mode 100644 index 0000000000..98bc4e162b --- /dev/null +++ b/common/test/data/manual-testing-complete/policies/assets.json @@ -0,0 +1 @@ +{"1.pdf": {"contentType": "application/pdf", "displayname": "1.pdf", "locked": false, "filename": "/c4x/ManTestX/ManTest1/asset/1.pdf", "import_path": null, "thumbnail_location": null}, "subs_OEoXaMPEzfM.srt.sjson": {"contentType": "application/json", "displayname": "subs_OEoXaMPEzfM.srt.sjson", "locked": false, "filename": "/c4x/ManTestX/ManTest1/asset/subs_OEoXaMPEzfM.srt.sjson", "import_path": null, "thumbnail_location": null}, "Screen_Shot_2013-04-16_at_1.43.36_PM.png": {"contentType": "image/png", "displayname": "Screen Shot 2013-04-16 at 1.43.36 PM.png", "locked": false, "filename": "/c4x/ManTestX/ManTest1/asset/Screen_Shot_2013-04-16_at_1.43.36_PM.png", "import_path": null, "thumbnail_location": ["c4x", "ManTestX", "ManTest1", "thumbnail", "Screen_Shot_2013-04-16_at_1.43.36_PM.jpg", null]}} \ No newline at end of file diff --git a/common/test/data/manual-testing-complete/problem/009f9b6b79404206a2c316117099fed5.xml b/common/test/data/manual-testing-complete/problem/009f9b6b79404206a2c316117099fed5.xml new file mode 100644 index 0000000000..688dd90050 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/009f9b6b79404206a2c316117099fed5.xml @@ -0,0 +1,13 @@ + +

Which of the following are in door sports:

+

1- Football

+

2- Squash

+

3- Badminton

+ + + option 1 and 2 + option 1 and 3 + option 2 and 3 + + +
diff --git a/common/test/data/manual-testing-complete/problem/11bbd906f12d4cbdbca3050d68cea79f.xml b/common/test/data/manual-testing-complete/problem/11bbd906f12d4cbdbca3050d68cea79f.xml new file mode 100644 index 0000000000..3b2a91ceda --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/11bbd906f12d4cbdbca3050d68cea79f.xml @@ -0,0 +1,32 @@ + + Here's an example of a "Drag and Drop" question set. Click and drag each word in the scrollbar below, up to the numbered bucket which matches the number of letters in the word. + +correct_answer = { + '1': [[70, 150], 121], + '6': [[190, 150], 121], + '8': [[190, 150], 121], + '2': [[310, 150], 121], + '9': [[310, 150], 121], + '11': [[310, 150], 121], + '4': [[420, 150], 121], + '7': [[420, 150], 121], + '3': [[550, 150], 121], + '5': [[550, 150], 121], + '10': [[550, 150], 121]} +if draganddrop.grade(submission[0], correct_answer): + correct = ['correct'] +else: + correct = ['incorrect'] + +

Drag and Drop with Outline

Please label hydrogen atoms connected with left carbon atom.

+correct_answer = [{ + 'draggables': ['1', '2'], + 'targets': ['t2', 't3', 't4' ], + 'rule':'anyof' +}] +if draganddrop.grade(submission[0], correct_answer): + correct = ['correct'] +else: + correct = ['incorrect'] +
+
diff --git a/common/test/data/manual-testing-complete/problem/29fe8cca3a99412c801c5b9ce53780c5.xml b/common/test/data/manual-testing-complete/problem/29fe8cca3a99412c801c5b9ce53780c5.xml new file mode 100644 index 0000000000..f2091dc558 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/29fe8cca3a99412c801c5b9ce53780c5.xml @@ -0,0 +1,20 @@ + + +

Some problems may ask for a particular chemical equation. You can practice this technique by writing out the following reaction in the box below.

+
\( \text{H}_2\text{SO}_4 \longrightarrow \text{ H}^+ + \text{ HSO}_4^-\)
+
+ + + + +if chemcalc.chemical_equations_equal(submission[0], 'H2SO4 -> H^+ + HSO4^-'): + correct = ['correct'] +else: + correct = ['incorrect'] + + + +

Some tips:

  • Only real element symbols are permitted.
  • Subscripts are entered with plain text.
  • Superscripts are indicated with a caret (^).
  • The reaction arrow (\(\longrightarrow\)) is indicated with "->".
+ So, you can enter "H2SO4 -> H^+ + HSO4^-".

+ +
diff --git a/common/test/data/manual-testing-complete/problem/2f7da8477d8748f0aad0f7fc2134b84f.xml b/common/test/data/manual-testing-complete/problem/2f7da8477d8748f0aad0f7fc2134b84f.xml new file mode 100644 index 0000000000..21d1dd7ad8 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/2f7da8477d8748f0aad0f7fc2134b84f.xml @@ -0,0 +1,32 @@ + + Please make a voltage divider that splits the provided voltage evenly. + +
+dc_value = "dc analysis not found" +for response in submission[0]: + if response[0] == 'dc': + for node in response[1:]: + dc_value = node['output'] + +if dc_value == .5: + correct = ['correct'] +else: + correct = ['incorrect'] +
+

Make a high pass filter

+ac_values = None +for response in submission[0]: + if response[0] == 'ac': + for node in response[1:]: + ac_values = node['NodeA'] +print "the ac analysis value:", ac_values +if ac_values == None: + correct = ['incorrect'] +elif ac_values[0][1] < ac_values[1][1]: + correct = ['correct'] +else: + correct = ['incorrect'] +
+ +

Explanation

A voltage divider that evenly divides the input voltage can be formed with two identically valued resistors, with the sampled voltage taken in between the two.

A simple high-pass filter without any further constaints can be formed by simply putting a resister in series with a capacitor. The actual values of the components do not really matter in order to meet the constraints of the problem.

+
diff --git a/common/test/data/manual-testing-complete/problem/35501134637b4c2b8cfe07ba5e6492bb.xml b/common/test/data/manual-testing-complete/problem/35501134637b4c2b8cfe07ba5e6492bb.xml new file mode 100644 index 0000000000..8083106a8b --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/35501134637b4c2b8cfe07ba5e6492bb.xml @@ -0,0 +1,33 @@ + + +

+The shapes below can be selected (yellow) or unselected (cyan). +Clicking on them repeatedly will cycle through these two states. +

+

+If the cone is selected (and not the cube), a correct answer will be +generated after pressing "Check". Clicking on either "Check" or "Save" +will register the current state. +

+ + + +
diff --git a/common/test/data/manual-testing-complete/problem/39bb74b14f674ea1ab25f52bac9eb83b.xml b/common/test/data/manual-testing-complete/problem/39bb74b14f674ea1ab25f52bac9eb83b.xml new file mode 100644 index 0000000000..7cc0dc7dee --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/39bb74b14f674ea1ab25f52bac9eb83b.xml @@ -0,0 +1,92 @@ + +

+ A JSDraw problem lets the user use the JSDraw editor component to draw a + new molecule or update an existing drawing and then submit their work. + Answers are specified as SMILES strings. +

+

+ I was trying to draw my favorite molecule, caffeine. Unfortunately, + I'm not a very good biochemist. Can you correct my molecule? +

+ + + + JSDraw201081410342D + + 12 13 0 0 0 0 0 V2000 + 12.0000 -6.7600 0.0000 N 0 0 0 0 0 0 0 + 10.6490 -5.9800 0.0000 C 0 0 0 0 0 0 0 + 10.6490 -4.4200 0.0000 N 0 0 0 0 0 0 0 + 12.0000 -3.6400 0.0000 C 0 0 0 0 0 0 0 + 13.3510 -4.4200 0.0000 C 0 0 0 0 0 0 0 + 13.3510 -5.9800 0.0000 C 0 0 0 0 0 0 0 + 14.8347 -6.4620 0.0000 N 0 0 0 0 0 0 0 + 15.7515 -5.1998 0.0000 C 0 0 0 0 0 0 0 + 14.8346 -3.9379 0.0000 N 0 0 0 0 0 0 0 + 15.3166 -2.4542 0.0000 C 0 0 0 0 0 0 0 + 9.2980 -3.6400 0.0000 C 0 0 0 0 0 0 0 + 9.2980 -6.7600 0.0000 O 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 1 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 5 1 0 0 0 0 + 9 10 1 0 0 0 0 + 3 11 1 0 0 0 0 + 2 12 1 0 0 0 0 + M END + + + JSDraw203201413042D + + 14 15 0 0 0 0 0 V2000 + 12.9049 -6.2400 0.0000 N 0 0 0 0 0 0 0 + 11.5539 -5.4600 0.0000 C 0 0 0 0 0 0 0 + 11.5539 -3.9000 0.0000 N 0 0 0 0 0 0 0 + 12.9049 -3.1200 0.0000 C 0 0 0 0 0 0 0 + 14.2558 -3.9000 0.0000 C 0 0 0 0 0 0 0 + 14.2558 -5.4600 0.0000 C 0 0 0 0 0 0 0 + 15.7395 -5.9420 0.0000 N 0 0 0 0 0 0 0 + 16.6563 -4.6798 0.0000 C 0 0 0 0 0 0 0 + 15.7394 -3.4179 0.0000 N 0 0 0 0 0 0 0 + 16.2214 -1.9342 0.0000 C 0 0 0 0 0 0 0 + 10.2029 -3.1200 0.0000 C 0 0 0 0 0 0 0 + 10.2029 -6.2400 0.0000 O 0 0 0 0 0 0 0 + 12.9049 -7.8000 0.0000 C 0 0 0 0 0 0 0 + 12.9050 -1.5600 0.0000 O 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 1 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 8 9 1 0 0 0 0 + 9 5 1 0 0 0 0 + 9 10 1 0 0 0 0 + 3 11 1 0 0 0 0 + 2 12 2 0 0 0 0 + 1 13 1 0 0 0 0 + 4 14 2 0 0 0 0 + M END + + + C8H10N4O2 + + +
+

Explanation

+

+ Some scholars have hypothesized that the renaissance was made possible + by the introduction of coffee to Italy. Likewise scholars have linked + the Enlightenment with the rise of coffee houses in England. +

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/3a1e2c95f8a54bc98b65e9373dafc86e.xml b/common/test/data/manual-testing-complete/problem/3a1e2c95f8a54bc98b65e9373dafc86e.xml new file mode 100644 index 0000000000..85e1f81426 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/3a1e2c95f8a54bc98b65e9373dafc86e.xml @@ -0,0 +1,26 @@ + +

+A custom python-evaluated input problem accepts one or more lines of text input from the +student, and evaluates the inputs for correctness based on evaluation using a +python script embedded within the problem. +

+ +

Nice university, whose name begins with "s"...

+ + + + +
+

Explanation

+

Stanford

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/427a1515100a4d08b959ba5852a1630d.xml b/common/test/data/manual-testing-complete/problem/427a1515100a4d08b959ba5852a1630d.xml new file mode 100644 index 0000000000..4150db5102 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/427a1515100a4d08b959ba5852a1630d.xml @@ -0,0 +1,6 @@ + +

Capital of France is Paris:

+ + + +
diff --git a/common/test/data/manual-testing-complete/problem/440e298f5b804377bc31d06a3f783a5c.xml b/common/test/data/manual-testing-complete/problem/440e298f5b804377bc31d06a3f783a5c.xml new file mode 100644 index 0000000000..4cd65a4ca3 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/440e298f5b804377bc31d06a3f783a5c.xml @@ -0,0 +1,21 @@ + +

+ +A text input problem accepts a line of text from the +student, and evaluates the input for correctness based on an expected +answer. +

+

+The answer is correct if it matches every character of the expected answer. This can be a problem with international spelling, dates, or anything where the format of the answer is not clear. +

+

Which US state has Lansing as its capital?

+ + + + +
+

Explanation

+

Lansing is the capital of Michigan, although it is not Michigan's largest city, or even the seat of the county in which it resides.

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/45c30a061c3f473499a32d7e14f4a750.xml b/common/test/data/manual-testing-complete/problem/45c30a061c3f473499a32d7e14f4a750.xml new file mode 100644 index 0000000000..899e8a0a62 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/45c30a061c3f473499a32d7e14f4a750.xml @@ -0,0 +1,21 @@ + +

The Dopamine molecule, as shown, cannot make ionic bonds. Edit the dopamine molecule so it can make ionic bonds. +

+

+ When you are ready, click "Check.” If you need to start over, click + "Reset.” +

+ + + + + + + + +
diff --git a/common/test/data/manual-testing-complete/problem/45c317cb93d447f293ce982a2eccd77d.xml b/common/test/data/manual-testing-complete/problem/45c317cb93d447f293ce982a2eccd77d.xml new file mode 100644 index 0000000000..db34051c2b --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/45c317cb93d447f293ce982a2eccd77d.xml @@ -0,0 +1,31 @@ + + + + + + + +

Be sure to click "Fold" to fold your protein before you click "Check".

+ +

+ There are many protein sequences that will fold to the shape we asked you + about. Here is a sample sequence that will work. You can play around with + it if you are curious. +

+
    +
  • + Stick: RRRRRRR +
  • +
+
+
diff --git a/common/test/data/manual-testing-complete/problem/5c49dcff565848b8a4834ee8b3beeebc.xml b/common/test/data/manual-testing-complete/problem/5c49dcff565848b8a4834ee8b3beeebc.xml new file mode 100644 index 0000000000..4cd65a4ca3 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/5c49dcff565848b8a4834ee8b3beeebc.xml @@ -0,0 +1,21 @@ + +

+ +A text input problem accepts a line of text from the +student, and evaluates the input for correctness based on an expected +answer. +

+

+The answer is correct if it matches every character of the expected answer. This can be a problem with international spelling, dates, or anything where the format of the answer is not clear. +

+

Which US state has Lansing as its capital?

+ + + + +
+

Explanation

+

Lansing is the capital of Michigan, although it is not Michigan's largest city, or even the seat of the county in which it resides.

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/5e3b300353974a42875052a21823e39b.xml b/common/test/data/manual-testing-complete/problem/5e3b300353974a42875052a21823e39b.xml new file mode 100644 index 0000000000..5b3353e3e9 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/5e3b300353974a42875052a21823e39b.xml @@ -0,0 +1,20 @@ + + + + Annotation Exercise + They are the ones who, at the public assembly, had put savage derangement [atē] into my thinking [phrenes] |89 on that day when I myself deprived Achilles of his honorific portion [geras] + Agamemnon says that atē or ‘derangement’ was the cause of his actions: why could Zeus say the same thing? + Type your response below: + In your answer to A) and considering the way atē or 'derangement' works in the Iliad as a whole, did you describe atē as: + + + + + + + + +

If you answered “a cause,” you would be following the logic of the speaker, Agamemnon. But there is another logic at work here, and that is the superhuman logic that operates the cosmos. According to that logic, you have to look at the consequences of what you have done, not only the causes, and only then can you figure out the meaning of it all. If you answered “both a cause and an effect,” you would be reading out of the text in a more complete way. If you answered “an effect,” however, the reading would be less complete. Yes, you would still be reading out of the text, since the basic logic of the story is that a disaster happened. But it would be an incomplete reading, since the story is also about the need for explaining why the disaster happened.

+

Going back to the answer “a cause,” the problem with this reading is that you would have simply taken Agamemnon’s words at face value. It is tempting, I admit, for us to see things the way Agamemnon sees things, since his world view in many ways resembles our own view of the Iliad when we read it for the very first time. Agamemnon is saying: I made a mistake, but it is not my fault, since a god made me do it. In Homeric poetry, we too see the gods intervening in the lives of humans. Yes, but we also see humans making their own free choices. If we forget about the free choice of Agamemnon, then we are simply reading into the text and not paying full attention to what the text says in its entirety.

+
+
diff --git a/common/test/data/manual-testing-complete/problem/70257670b9dd45c8afd5abd3c9fe606f.xml b/common/test/data/manual-testing-complete/problem/70257670b9dd45c8afd5abd3c9fe606f.xml new file mode 100644 index 0000000000..3b2a91ceda --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/70257670b9dd45c8afd5abd3c9fe606f.xml @@ -0,0 +1,32 @@ + + Here's an example of a "Drag and Drop" question set. Click and drag each word in the scrollbar below, up to the numbered bucket which matches the number of letters in the word. + +correct_answer = { + '1': [[70, 150], 121], + '6': [[190, 150], 121], + '8': [[190, 150], 121], + '2': [[310, 150], 121], + '9': [[310, 150], 121], + '11': [[310, 150], 121], + '4': [[420, 150], 121], + '7': [[420, 150], 121], + '3': [[550, 150], 121], + '5': [[550, 150], 121], + '10': [[550, 150], 121]} +if draganddrop.grade(submission[0], correct_answer): + correct = ['correct'] +else: + correct = ['incorrect'] + +

Drag and Drop with Outline

Please label hydrogen atoms connected with left carbon atom.

+correct_answer = [{ + 'draggables': ['1', '2'], + 'targets': ['t2', 't3', 't4' ], + 'rule':'anyof' +}] +if draganddrop.grade(submission[0], correct_answer): + correct = ['correct'] +else: + correct = ['incorrect'] +
+
diff --git a/common/test/data/manual-testing-complete/problem/7eff0366d53045c1b423ee988d344a13.xml b/common/test/data/manual-testing-complete/problem/7eff0366d53045c1b423ee988d344a13.xml new file mode 100644 index 0000000000..c79eeacdc4 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/7eff0366d53045c1b423ee988d344a13.xml @@ -0,0 +1,92 @@ + +

+ A JSDraw problem lets the user use the JSDraw editor component to draw a + new molecule or update an existing drawing and then submit their work. + Answers are specified as SMILES strings. +

+

+ I was trying to draw my favorite molecule, caffeine. Unfortunately, + I'm not a very good biochemist. Can you correct my molecule? +

+ + + + JSDraw201081410342D + + 12 13 0 0 0 0 0 V2000 + 12.0000 -6.7600 0.0000 N 0 0 0 0 0 0 0 + 10.6490 -5.9800 0.0000 C 0 0 0 0 0 0 0 + 10.6490 -4.4200 0.0000 N 0 0 0 0 0 0 0 + 12.0000 -3.6400 0.0000 C 0 0 0 0 0 0 0 + 13.3510 -4.4200 0.0000 C 0 0 0 0 0 0 0 + 13.3510 -5.9800 0.0000 C 0 0 0 0 0 0 0 + 14.8347 -6.4620 0.0000 N 0 0 0 0 0 0 0 + 15.7515 -5.1998 0.0000 C 0 0 0 0 0 0 0 + 14.8346 -3.9379 0.0000 N 0 0 0 0 0 0 0 + 15.3166 -2.4542 0.0000 C 0 0 0 0 0 0 0 + 9.2980 -3.6400 0.0000 C 0 0 0 0 0 0 0 + 9.2980 -6.7600 0.0000 O 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 1 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 5 1 0 0 0 0 + 9 10 1 0 0 0 0 + 3 11 1 0 0 0 0 + 2 12 1 0 0 0 0 + M END + + + JSDraw203201413042D + + 14 15 0 0 0 0 0 V2000 + 12.9049 -6.2400 0.0000 N 0 0 0 0 0 0 0 + 11.5539 -5.4600 0.0000 C 0 0 0 0 0 0 0 + 11.5539 -3.9000 0.0000 N 0 0 0 0 0 0 0 + 12.9049 -3.1200 0.0000 C 0 0 0 0 0 0 0 + 14.2558 -3.9000 0.0000 C 0 0 0 0 0 0 0 + 14.2558 -5.4600 0.0000 C 0 0 0 0 0 0 0 + 15.7395 -5.9420 0.0000 N 0 0 0 0 0 0 0 + 16.6563 -4.6798 0.0000 C 0 0 0 0 0 0 0 + 15.7394 -3.4179 0.0000 N 0 0 0 0 0 0 0 + 16.2214 -1.9342 0.0000 C 0 0 0 0 0 0 0 + 10.2029 -3.1200 0.0000 C 0 0 0 0 0 0 0 + 10.2029 -6.2400 0.0000 O 0 0 0 0 0 0 0 + 12.9049 -7.8000 0.0000 C 0 0 0 0 0 0 0 + 12.9050 -1.5600 0.0000 O 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 1 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 8 9 1 0 0 0 0 + 9 5 1 0 0 0 0 + 9 10 1 0 0 0 0 + 3 11 1 0 0 0 0 + 2 12 2 0 0 0 0 + 1 13 1 0 0 0 0 + 4 14 2 0 0 0 0 + M END + + + C8H10N4O2 + + +
+

Explanation

+

+ Some scholars have hypothesized that the renaissance was made possible + by the introduction of coffee to Italy. Likewise scholars have linked + the Enlightenment with the rise of coffee houses in England. +

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/8a5a7653bf804a968c17d398cb91aa4e.xml b/common/test/data/manual-testing-complete/problem/8a5a7653bf804a968c17d398cb91aa4e.xml new file mode 100644 index 0000000000..dace2e32d4 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/8a5a7653bf804a968c17d398cb91aa4e.xml @@ -0,0 +1,17 @@ + +

+ An image mapped input problem presents an image for the student. + Input is given by the location of mouse clicks on the image. + Correctness of input can be evaluated based on expected dimensions of a rectangle. +

+

Which animal shown below is a kitten?

+ + + + +
+

Explanation

+

The animal on the right is a kitten. The animal on the left is a puppy, not a kitten.

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/9497fab9cc6f4187ba17d23731b614bf.xml b/common/test/data/manual-testing-complete/problem/9497fab9cc6f4187ba17d23731b614bf.xml new file mode 100644 index 0000000000..91192df8d8 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/9497fab9cc6f4187ba17d23731b614bf.xml @@ -0,0 +1,14 @@ + +

A numerical input problem accepts a line of text input from the student, and evaluates the input for correctness based on its numerical value.

+

The answer is correct if it is within a specified numerical tolerance of the expected answer.

+

Enter the number of fingers on a human hand

+ + + + +
+

Explanation

+

If you look at your hand, you can count that you have five fingers.

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/9992192a14ce47fcb71f77d7e77c821c.xml b/common/test/data/manual-testing-complete/problem/9992192a14ce47fcb71f77d7e77c821c.xml new file mode 100644 index 0000000000..97938ed9f3 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/9992192a14ce47fcb71f77d7e77c821c.xml @@ -0,0 +1,22 @@ + +

+A multiple choice problem presents radio buttons for student +input. Students can only select a single option presented. Multiple Choice questions have been the subject of many areas of research due to the early invention and adoption of bubble sheets.

+

One of the main elements that goes into a good multiple choice question is the existence of good distractors. That is, each of the alternate responses presented to the student should be the result of a plausible mistake that a student might make. +

+

What Apple device competed with the portable CD player?

+ + + The iPad + Napster + The iPod + The vegetable peeler + + + +
+

Explanation

+

The release of the iPod allowed consumers to carry their entire music library with them in a format that did not rely on fragile and energy-intensive spinning disks.

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/a473cecce312487a8339995bde24be53.xml b/common/test/data/manual-testing-complete/problem/a473cecce312487a8339995bde24be53.xml new file mode 100644 index 0000000000..d3f54f20c2 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/a473cecce312487a8339995bde24be53.xml @@ -0,0 +1,11 @@ + +

A checkboxes problem presents checkbox buttons for student input. Students can select more than one option presented.

+

Select the answer that matches

+ + + correct + incorrect + correct + + +
diff --git a/common/test/data/manual-testing-complete/problem/a5ca9b0f09cc4798bb53e5840e625301.xml b/common/test/data/manual-testing-complete/problem/a5ca9b0f09cc4798bb53e5840e625301.xml new file mode 100644 index 0000000000..3b2de21ac3 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/a5ca9b0f09cc4798bb53e5840e625301.xml @@ -0,0 +1,10 @@ + +

Which of the following equations is the most complex

+ + + \(E = m c^2 \) + \(A = \pi r^2\) + + +

+
diff --git a/common/test/data/manual-testing-complete/problem/b6b80c6b383f4c3c80efc32b968368dc.xml b/common/test/data/manual-testing-complete/problem/b6b80c6b383f4c3c80efc32b968368dc.xml new file mode 100644 index 0000000000..3a6beae668 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/b6b80c6b383f4c3c80efc32b968368dc.xml @@ -0,0 +1,37 @@ + +

+A math expression input problem accepts a line of text representing a mathematical expression from the +student, and evaluates the input for equivalence to a mathematical expression provided by the +grader. Correctness is based on numerical sampling of the symbolic expressions. +

+

+The answer is correct if both the student provided response and the grader's mathematical +expression are equivalent to specified numerical tolerance, over a specified range of values for each +variable. +

+

This kind of response checking can handle symbolic expressions, but places an extra burden +on the problem author to specify the allowed variables in the expression, and the +numerical ranges over which the variables must be sampled in order to test for correctness.

+ +

Give an equation for the relativistic energy of an object with mass m. Explicitly indicate multiplication with a * symbol.

+ + +
+ E = + +
+

The answer to this question is (R_1*R_2)/R_3.

+ + + + + +
+

Explanation

+

The mathematical summary of many of the theory of relativity developed by Einstein is that the amount of energy contained in a mass m is the mass time the speed of light squared.

+

As you can see with the formula entry, the answer is \(\frac{R_1*R_2}{R_3}\)

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/c2ee6e8917fe4c97ac99d7b616ff0b89.xml b/common/test/data/manual-testing-complete/problem/c2ee6e8917fe4c97ac99d7b616ff0b89.xml new file mode 100644 index 0000000000..cf9ee3d8a0 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/c2ee6e8917fe4c97ac99d7b616ff0b89.xml @@ -0,0 +1,162 @@ + + +

We are searching for + the smallest monthly payment such that we can pay off the + entire balance of a loan within a year.

+

The following values might be useful when writing your solution

+
+

Monthly interest rate += (Annual interest rate) / 12
+Monthly payment lower bound += Balance / 12
+ +Monthly payment upper bound = (Balance x + (1 + Monthly interest rate)12) / 12 +

+
+

The following variables contain values as described below:

+
    +
  1. +

    balance - the outstanding balance on the credit card

    +
  2. +
  3. +

    annualInterestRate - annual interest rate as a decimal

    +
  4. +
+

Write a program that uses these bounds and bisection + search (for more info check out the Wikipedia page + on bisection search) + to find the smallest monthly payment to the cent + such that we can pay off the + debt within a year.

+

Note that if you do not use bisection search, your code will not run - your code only has + 30 seconds to run on our servers. If you get a message that states "Your submission could not be graded. Please recheck your + submission and try again. If the problem persists, please notify the course staff.", check to be + sure your code doesn't take too long to run.

+

The code you paste into the following box should not specify the values for the variables balance + or annualInterestRate - our test code will define those values + before testing your submission.

+
+ + + + + +monthlyInterestRate = annualInterestRate/12 +lowerBound = balance/12 +upperBound = (balance * (1+annualInterestRate/12)**12)/12 +originalBalance = balance + +# Keep testing new payment values +# until the balance is +/- $0.02 +while abs(balance) > .02: + # Reset the value of balance to its original value + balance = originalBalance + # Calculate a new monthly payment value from the bounds + payment = (upperBound - lowerBound)/2 + lowerBound + + # Test if this payment value is sufficient to pay off the + # entire balance in 12 months + for month in range(12): + balance -= payment + balance *= 1+monthlyInterestRate + + # Reset bounds based on the final value of balance + if balance > 0: + # If the balance is too big, need higher payment + # so we increase the lower bound + lowerBound = payment + else: + # If the balance is too small, we need a lower + # payment, so we decrease the upper bound + upperBound = payment + +# When the while loop terminates, we know we have +# our answer! +print "Lowest Payment:", round(payment, 2) + + +{"grader": "ps02/bisect/grade_bisect.py"} + + + + +
+ Note: +

Depending on where, and how frequently, you round during + this function, your answers may be off a few cents in + either direction. Try rounding as few times as possible + in order to increase the accuracy of your result.

+
+
+

Hints

+
+
+ Test Cases to test your code with. Be sure to test these on your own machine - + and that you get the same output! - before running your code on this webpage! +
+
+

Note: The automated tests are lenient - if your answers are off by a few cents + in either direction, your code is OK.

+

Test Cases:

+

+

+              
+      Test Case 1:
+      balance = 320000
+      annualInterestRate = 0.2
+
+      Result Your Code Should Generate:
+      -------------------
+      Lowest Payment: 29157.09
+
+            
+

+

+

+              
+      Test Case 2:
+      balance = 999999
+      annualInterestRate = 0.18
+
+      Result Your Code Should Generate:
+      -------------------
+      Lowest Payment: 90325.07
+
+            
+

+
+
+
+
+ The autograder says, "Your submission could not be graded." Help! +
+
+

If the autograder gives you the following message:

+
+Your submission could not be graded.
+Please recheck your submission and try again. If the problem persists, please notify the course staff.
+      
+

Don't panic! There are a few things that might be wrong with your code that you should + check out. The number one reason this message appears is because your code timed out. + You only get 30 seconds of computation time on our servers. If your code times out, + you probably have an infinite loop. What to do?

+

The number 1 thing to do is that you need to run this code in your own local + environment. Your code should print one line at the end of the loop. If your code never prints anything + out - you have an infinite loop!

+

To debug your infinite loop - check your loop conditional. When will it stop? + Try inserting print statements inside your loop that prints out information (like variables) - are you + incrementing or decrementing your loop counter correctly? + Search the forum for people with similar issues. If your search turns up nothing, + make a new post and paste in your loop conditional for others to help you out with.

+

Please don't email the course staff unless your code legitimately works and prints out the + correct answers in your local environment. In that case, please email your code file, + a screenshot of the code printing out the correct answers in your local environment, + and a screenshot of the exact same code not working on the tutor. The course staff is + otherwise unable to help debug your problem set via email - we can only address platform issues.

+
+
+
+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/d0bdd7c3487d4f94b7bcd207f110c20a.xml b/common/test/data/manual-testing-complete/problem/d0bdd7c3487d4f94b7bcd207f110c20a.xml new file mode 100644 index 0000000000..db34051c2b --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/d0bdd7c3487d4f94b7bcd207f110c20a.xml @@ -0,0 +1,31 @@ + + + + + + + +

Be sure to click "Fold" to fold your protein before you click "Check".

+ +

+ There are many protein sequences that will fold to the shape we asked you + about. Here is a sample sequence that will work. You can play around with + it if you are curious. +

+
    +
  • + Stick: RRRRRRR +
  • +
+
+
diff --git a/common/test/data/manual-testing-complete/problem/d30b3812201a46af88d30bd4c7c009e6.xml b/common/test/data/manual-testing-complete/problem/d30b3812201a46af88d30bd4c7c009e6.xml new file mode 100644 index 0000000000..fb96600806 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/d30b3812201a46af88d30bd4c7c009e6.xml @@ -0,0 +1,15 @@ + +

A numerical input problem accepts a line of text input from the student, and evaluates the input for correctness based on its numerical value.

+

The answer is correct if it is within a specified numerical tolerance of the expected answer.

+

Enter the numerical value of Pi:

+ + + + + +
+

Explanation

+

Pi, or the the ratio between a circle's circumference to its diameter, is an irrational number known to extreme precision. It is value is approximately equal to 3.14.

+
+
+
diff --git a/common/test/data/manual-testing-complete/problem/dcada38f8944442799ac2fed42201641.xml b/common/test/data/manual-testing-complete/problem/dcada38f8944442799ac2fed42201641.xml new file mode 100644 index 0000000000..d3f54f20c2 --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/dcada38f8944442799ac2fed42201641.xml @@ -0,0 +1,11 @@ + +

A checkboxes problem presents checkbox buttons for student input. Students can select more than one option presented.

+

Select the answer that matches

+ + + correct + incorrect + correct + + +
diff --git a/common/test/data/manual-testing-complete/problem/eb248c5260254ce094c157ffb8352d16.xml b/common/test/data/manual-testing-complete/problem/eb248c5260254ce094c157ffb8352d16.xml new file mode 100644 index 0000000000..62426e3dcf --- /dev/null +++ b/common/test/data/manual-testing-complete/problem/eb248c5260254ce094c157ffb8352d16.xml @@ -0,0 +1,15 @@ + +

A numerical input problem accepts a line of text input from the student, and evaluates the input for correctness based on its numerical value.

+

The answer is correct if it is within a specified numerical tolerance of the expected answer.

+

Enter the approximate value of 502*9:

+ + + + + +
+

Explanation

+

Although you can get an exact value by typing 502*9 into a calculator, the result will be close to 500*10, or 5,000. The grader accepts any response within 15% of the true value, 4518, so that you can use any estimation technique that you like.

+
+
+
diff --git a/common/test/data/manual-testing-complete/sequential/01a66b857fad4221b01f742ec0e86c49.xml b/common/test/data/manual-testing-complete/sequential/01a66b857fad4221b01f742ec0e86c49.xml new file mode 100644 index 0000000000..3cd056e3cf --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/01a66b857fad4221b01f742ec0e86c49.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/0aa765632f4d4b84ad8d96f41cec5825.xml b/common/test/data/manual-testing-complete/sequential/0aa765632f4d4b84ad8d96f41cec5825.xml new file mode 100644 index 0000000000..251d4e99d2 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/0aa765632f4d4b84ad8d96f41cec5825.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/0cd40e13b4a045aba07d4f626c8b32de.xml b/common/test/data/manual-testing-complete/sequential/0cd40e13b4a045aba07d4f626c8b32de.xml new file mode 100644 index 0000000000..4672616210 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/0cd40e13b4a045aba07d4f626c8b32de.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/0d0e69d08e95436fbbf1be4c6dfec48a.xml b/common/test/data/manual-testing-complete/sequential/0d0e69d08e95436fbbf1be4c6dfec48a.xml new file mode 100644 index 0000000000..7dac57b9a7 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/0d0e69d08e95436fbbf1be4c6dfec48a.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/0e86943b2cb54a56a1a14c13da3f388d.xml b/common/test/data/manual-testing-complete/sequential/0e86943b2cb54a56a1a14c13da3f388d.xml new file mode 100644 index 0000000000..d4d5ca9a8f --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/0e86943b2cb54a56a1a14c13da3f388d.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/158963ff751747e3945f3834dd30e5fb.xml b/common/test/data/manual-testing-complete/sequential/158963ff751747e3945f3834dd30e5fb.xml new file mode 100644 index 0000000000..3aa27d6c3e --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/158963ff751747e3945f3834dd30e5fb.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/17d39634673a4151b6f337a5c216eb52.xml b/common/test/data/manual-testing-complete/sequential/17d39634673a4151b6f337a5c216eb52.xml new file mode 100644 index 0000000000..42ee54df6d --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/17d39634673a4151b6f337a5c216eb52.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/1dd8f4178f2a4b9cb09f37c5d6230f9d.xml b/common/test/data/manual-testing-complete/sequential/1dd8f4178f2a4b9cb09f37c5d6230f9d.xml new file mode 100644 index 0000000000..b041f06d80 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/1dd8f4178f2a4b9cb09f37c5d6230f9d.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/21b1a19dbe264a98b06ce9567a3e4171.xml b/common/test/data/manual-testing-complete/sequential/21b1a19dbe264a98b06ce9567a3e4171.xml new file mode 100644 index 0000000000..6d252afd8c --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/21b1a19dbe264a98b06ce9567a3e4171.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/2db8efb4573842c8854648a3ac9e52a4.xml b/common/test/data/manual-testing-complete/sequential/2db8efb4573842c8854648a3ac9e52a4.xml new file mode 100644 index 0000000000..b0f0d8c6f7 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/2db8efb4573842c8854648a3ac9e52a4.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/2e23db09e8b5472cbae9624208e3e1d7.xml b/common/test/data/manual-testing-complete/sequential/2e23db09e8b5472cbae9624208e3e1d7.xml new file mode 100644 index 0000000000..4595060c55 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/2e23db09e8b5472cbae9624208e3e1d7.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/30e61af5a8d74833bb66e19ccea1e5d8.xml b/common/test/data/manual-testing-complete/sequential/30e61af5a8d74833bb66e19ccea1e5d8.xml new file mode 100644 index 0000000000..af867d7014 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/30e61af5a8d74833bb66e19ccea1e5d8.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/313d1bb9031c4d529c7018248d6fff52.xml b/common/test/data/manual-testing-complete/sequential/313d1bb9031c4d529c7018248d6fff52.xml new file mode 100644 index 0000000000..03f3db0c36 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/313d1bb9031c4d529c7018248d6fff52.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/345d618ca88944668d86586f83bff338.xml b/common/test/data/manual-testing-complete/sequential/345d618ca88944668d86586f83bff338.xml new file mode 100644 index 0000000000..707078e637 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/345d618ca88944668d86586f83bff338.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/363603b2c7d34d26a3baa9de29be2211.xml b/common/test/data/manual-testing-complete/sequential/363603b2c7d34d26a3baa9de29be2211.xml new file mode 100644 index 0000000000..6e3a3190c8 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/363603b2c7d34d26a3baa9de29be2211.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/3aa3759deca94e1783b7dc9c148cd483.xml b/common/test/data/manual-testing-complete/sequential/3aa3759deca94e1783b7dc9c148cd483.xml new file mode 100644 index 0000000000..08146bc68e --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/3aa3759deca94e1783b7dc9c148cd483.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/3b115f75b12b42699a3148ea0ffee76b.xml b/common/test/data/manual-testing-complete/sequential/3b115f75b12b42699a3148ea0ffee76b.xml new file mode 100644 index 0000000000..b5e39c5bde --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/3b115f75b12b42699a3148ea0ffee76b.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/4026dba735fe450faf81f766c63bef8b.xml b/common/test/data/manual-testing-complete/sequential/4026dba735fe450faf81f766c63bef8b.xml new file mode 100644 index 0000000000..711000448d --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/4026dba735fe450faf81f766c63bef8b.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/47b7432f998c45abad9f79effeda60bf.xml b/common/test/data/manual-testing-complete/sequential/47b7432f998c45abad9f79effeda60bf.xml new file mode 100644 index 0000000000..678663dced --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/47b7432f998c45abad9f79effeda60bf.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/4cd0b5b3dd3343b5937fea80ec5005cc.xml b/common/test/data/manual-testing-complete/sequential/4cd0b5b3dd3343b5937fea80ec5005cc.xml new file mode 100644 index 0000000000..73b8226041 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/4cd0b5b3dd3343b5937fea80ec5005cc.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/4eadf76912cd436b9d698c8759784d8d.xml b/common/test/data/manual-testing-complete/sequential/4eadf76912cd436b9d698c8759784d8d.xml new file mode 100644 index 0000000000..798ad29ca0 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/4eadf76912cd436b9d698c8759784d8d.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/508e5fa820b643b1a329e2ab5dd59393.xml b/common/test/data/manual-testing-complete/sequential/508e5fa820b643b1a329e2ab5dd59393.xml new file mode 100644 index 0000000000..5cfa0c52ac --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/508e5fa820b643b1a329e2ab5dd59393.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/589cf38cfb22450a901818b48d4b7ff5.xml b/common/test/data/manual-testing-complete/sequential/589cf38cfb22450a901818b48d4b7ff5.xml new file mode 100644 index 0000000000..3b6d8b55ac --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/589cf38cfb22450a901818b48d4b7ff5.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/5c33f2c2b3aa45f5bfbf7bf7f9bcb2ff.xml b/common/test/data/manual-testing-complete/sequential/5c33f2c2b3aa45f5bfbf7bf7f9bcb2ff.xml new file mode 100644 index 0000000000..57d9bf8664 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/5c33f2c2b3aa45f5bfbf7bf7f9bcb2ff.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/613404c6df1445ed81f12883dde30a41.xml b/common/test/data/manual-testing-complete/sequential/613404c6df1445ed81f12883dde30a41.xml new file mode 100644 index 0000000000..0533172843 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/613404c6df1445ed81f12883dde30a41.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/67c9c6cd94fe498fb1dc965c35eca3d3.xml b/common/test/data/manual-testing-complete/sequential/67c9c6cd94fe498fb1dc965c35eca3d3.xml new file mode 100644 index 0000000000..00591dc9c5 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/67c9c6cd94fe498fb1dc965c35eca3d3.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/6c4c10b89cc449fcbde0006c47e3ee26.xml b/common/test/data/manual-testing-complete/sequential/6c4c10b89cc449fcbde0006c47e3ee26.xml new file mode 100644 index 0000000000..9ba24fe529 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/6c4c10b89cc449fcbde0006c47e3ee26.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/7942fe1a06aa439092aabe3615d91b15.xml b/common/test/data/manual-testing-complete/sequential/7942fe1a06aa439092aabe3615d91b15.xml new file mode 100644 index 0000000000..05910b7dfb --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/7942fe1a06aa439092aabe3615d91b15.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/7a598df4cc4345138332c1d19ecd963d.xml b/common/test/data/manual-testing-complete/sequential/7a598df4cc4345138332c1d19ecd963d.xml new file mode 100644 index 0000000000..38d3b6ee78 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/7a598df4cc4345138332c1d19ecd963d.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/7fe9686bb8fe4edba75867ddd1d7b1c5.xml b/common/test/data/manual-testing-complete/sequential/7fe9686bb8fe4edba75867ddd1d7b1c5.xml new file mode 100644 index 0000000000..9c712c8c5f --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/7fe9686bb8fe4edba75867ddd1d7b1c5.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/8ad25eec767f40ae81bcc7555778c91e.xml b/common/test/data/manual-testing-complete/sequential/8ad25eec767f40ae81bcc7555778c91e.xml new file mode 100644 index 0000000000..e6728b209c --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/8ad25eec767f40ae81bcc7555778c91e.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/948737f132254c2aa65f6024edee7e68.xml b/common/test/data/manual-testing-complete/sequential/948737f132254c2aa65f6024edee7e68.xml new file mode 100644 index 0000000000..077d2aeff6 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/948737f132254c2aa65f6024edee7e68.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/aa338c6acd1e498ca8d4ccf6ded72f9b.xml b/common/test/data/manual-testing-complete/sequential/aa338c6acd1e498ca8d4ccf6ded72f9b.xml new file mode 100644 index 0000000000..96fe5d82a7 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/aa338c6acd1e498ca8d4ccf6ded72f9b.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/ac37154b78454cecaad080221cf1dbd5.xml b/common/test/data/manual-testing-complete/sequential/ac37154b78454cecaad080221cf1dbd5.xml new file mode 100644 index 0000000000..46a24fa381 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/ac37154b78454cecaad080221cf1dbd5.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/b7ebe0f048e9466e9ef32e7815fb5a93.xml b/common/test/data/manual-testing-complete/sequential/b7ebe0f048e9466e9ef32e7815fb5a93.xml new file mode 100644 index 0000000000..d88f4d68b3 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/b7ebe0f048e9466e9ef32e7815fb5a93.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/b857bc7d37c74e38b51741340da91dcd.xml b/common/test/data/manual-testing-complete/sequential/b857bc7d37c74e38b51741340da91dcd.xml new file mode 100644 index 0000000000..febff369c4 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/b857bc7d37c74e38b51741340da91dcd.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/bb9bc5a7d0d945cea2a77e3d85f28c41.xml b/common/test/data/manual-testing-complete/sequential/bb9bc5a7d0d945cea2a77e3d85f28c41.xml new file mode 100644 index 0000000000..87337e7daf --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/bb9bc5a7d0d945cea2a77e3d85f28c41.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/bba59b360c344a1db0eb3239e2381484.xml b/common/test/data/manual-testing-complete/sequential/bba59b360c344a1db0eb3239e2381484.xml new file mode 100644 index 0000000000..d5a6bc025c --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/bba59b360c344a1db0eb3239e2381484.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/bd0b30ef8bea48ff86559be1cbe2fa49.xml b/common/test/data/manual-testing-complete/sequential/bd0b30ef8bea48ff86559be1cbe2fa49.xml new file mode 100644 index 0000000000..ce6298a1a8 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/bd0b30ef8bea48ff86559be1cbe2fa49.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/c18b834531e14a3fb070dabf16380541.xml b/common/test/data/manual-testing-complete/sequential/c18b834531e14a3fb070dabf16380541.xml new file mode 100644 index 0000000000..5e24d39dea --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/c18b834531e14a3fb070dabf16380541.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/c59bd9a5a7ec4b31a95515c14bb9f552.xml b/common/test/data/manual-testing-complete/sequential/c59bd9a5a7ec4b31a95515c14bb9f552.xml new file mode 100644 index 0000000000..b72f3de81d --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/c59bd9a5a7ec4b31a95515c14bb9f552.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/c681c865017d4c0ea931f7345aa79277.xml b/common/test/data/manual-testing-complete/sequential/c681c865017d4c0ea931f7345aa79277.xml new file mode 100644 index 0000000000..91e37bde1e --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/c681c865017d4c0ea931f7345aa79277.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/c76b46a765e24c1f9f51de2b49131be0.xml b/common/test/data/manual-testing-complete/sequential/c76b46a765e24c1f9f51de2b49131be0.xml new file mode 100644 index 0000000000..481dd08d6e --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/c76b46a765e24c1f9f51de2b49131be0.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/ca6fc483ef064fa7b275f9e712f041f6.xml b/common/test/data/manual-testing-complete/sequential/ca6fc483ef064fa7b275f9e712f041f6.xml new file mode 100644 index 0000000000..b492861b07 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/ca6fc483ef064fa7b275f9e712f041f6.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/d0e7879a63a4429fb1223a22443681b9.xml b/common/test/data/manual-testing-complete/sequential/d0e7879a63a4429fb1223a22443681b9.xml new file mode 100644 index 0000000000..da22046b84 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/d0e7879a63a4429fb1223a22443681b9.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/d49ee0959c564c8d8b55660ca5fa9bcd.xml b/common/test/data/manual-testing-complete/sequential/d49ee0959c564c8d8b55660ca5fa9bcd.xml new file mode 100644 index 0000000000..fcf01cad05 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/d49ee0959c564c8d8b55660ca5fa9bcd.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/d6d7e96bf6a441a4b4e7c7eac0d0e573.xml b/common/test/data/manual-testing-complete/sequential/d6d7e96bf6a441a4b4e7c7eac0d0e573.xml new file mode 100644 index 0000000000..b1193fe697 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/d6d7e96bf6a441a4b4e7c7eac0d0e573.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/d7d631967807476485aa26ba0c39a992.xml b/common/test/data/manual-testing-complete/sequential/d7d631967807476485aa26ba0c39a992.xml new file mode 100644 index 0000000000..12351c2deb --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/d7d631967807476485aa26ba0c39a992.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/d912a92ed03d4f818661a1636b8a6f9b.xml b/common/test/data/manual-testing-complete/sequential/d912a92ed03d4f818661a1636b8a6f9b.xml new file mode 100644 index 0000000000..c90e36d75c --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/d912a92ed03d4f818661a1636b8a6f9b.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/dc2b88afd57241f9bcd2dcbd03c6c2f3.xml b/common/test/data/manual-testing-complete/sequential/dc2b88afd57241f9bcd2dcbd03c6c2f3.xml new file mode 100644 index 0000000000..74aae8caa4 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/dc2b88afd57241f9bcd2dcbd03c6c2f3.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/f09502cf408742c2aa3c92705ab1dce7.xml b/common/test/data/manual-testing-complete/sequential/f09502cf408742c2aa3c92705ab1dce7.xml new file mode 100644 index 0000000000..120bf200b8 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/f09502cf408742c2aa3c92705ab1dce7.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/f0e52b8eec5647ffb6013aef62b3d309.xml b/common/test/data/manual-testing-complete/sequential/f0e52b8eec5647ffb6013aef62b3d309.xml new file mode 100644 index 0000000000..9e5efda883 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/f0e52b8eec5647ffb6013aef62b3d309.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/f585fca58e5c4fe8ab231a5f62701de3.xml b/common/test/data/manual-testing-complete/sequential/f585fca58e5c4fe8ab231a5f62701de3.xml new file mode 100644 index 0000000000..7ba184b516 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/f585fca58e5c4fe8ab231a5f62701de3.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/f58fd90cbd794cad881692d3b6e5cdbf.xml b/common/test/data/manual-testing-complete/sequential/f58fd90cbd794cad881692d3b6e5cdbf.xml new file mode 100644 index 0000000000..a53cc4f3c7 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/f58fd90cbd794cad881692d3b6e5cdbf.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/sequential/f9372e3b199a4986a46c8d18e094b931.xml b/common/test/data/manual-testing-complete/sequential/f9372e3b199a4986a46c8d18e094b931.xml new file mode 100644 index 0000000000..7d3a1d5f40 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/f9372e3b199a4986a46c8d18e094b931.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/sequential/fbbe37e2980c4f0d96b0b8ac45c0378b.xml b/common/test/data/manual-testing-complete/sequential/fbbe37e2980c4f0d96b0b8ac45c0378b.xml new file mode 100644 index 0000000000..fbcd044de9 --- /dev/null +++ b/common/test/data/manual-testing-complete/sequential/fbbe37e2980c4f0d96b0b8ac45c0378b.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/static/1.pdf b/common/test/data/manual-testing-complete/static/1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ab5db00688bb9e061734d86611dc0227289632da GIT binary patch literal 194007 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⪙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
t6u)-!%LG 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 l1mc`9J=;qD|G|sT%+Q literal 0 HcmV?d00001 diff --git a/common/test/data/manual-testing-complete/static/subs_OEoXaMPEzfM.srt.sjson b/common/test/data/manual-testing-complete/static/subs_OEoXaMPEzfM.srt.sjson new file mode 100644 index 0000000000..7dc7a7c91e --- /dev/null +++ b/common/test/data/manual-testing-complete/static/subs_OEoXaMPEzfM.srt.sjson @@ -0,0 +1,143 @@ +{ + "start": [ + 270, + 2720, + 5430, + 7160, + 10830, + 12880, + 15890, + 19000, + 22070, + 25170, + 27890, + 30590, + 32920, + 36360, + 39630, + 41170, + 42790, + 44590, + 47320, + 50250, + 51880, + 54320, + 57410, + 59160, + 62320, + 65099, + 68430, + 71360, + 73640, + 76580, + 78660, + 81480, + 83940, + 86230, + 88570, + 90520, + 93430, + 95940, + 99090, + 100910, + 103740, + 105610, + 108310, + 111100, + 112360 + ], + "end": [ + 2720, + 5430, + 7160, + 10830, + 12880, + 15890, + 19000, + 22070, + 25170, + 27890, + 30590, + 32920, + 36360, + 39630, + 41170, + 42790, + 44590, + 47320, + 50250, + 51880, + 54320, + 57410, + 59160, + 62320, + 65099, + 68430, + 71360, + 73640, + 76580, + 78660, + 81480, + 83940, + 86230, + 88570, + 90520, + 93430, + 95940, + 99090, + 100910, + 103740, + 105610, + 108310, + 111100, + 112360, + 114220 + ], + "text": [ + "LILA FISHER: Hi, welcome to Edx.", + "I'm Lila Fisher, an Edx fellow helping to put", + "together these courses.", + "As you know, our courses are entirely online.", + "So before we start learning about the subjects that", + "brought you here, let's learn about the tools that you will", + "use to navigate through the course material.", + "Let's start with what is on your screen right now.", + "You are watching a video of me talking.", + "You have several tools associated with these videos.", + "Some of them are standard video buttons, like the play", + "Pause Button on the bottom left.", + "Like most video players, you can see how far you are into", + "this particular video segment and how long the entire video", + "segment is.", + "Something that you might not be used to", + "is the speed option.", + "While you are going through the videos, you can speed up", + "or slow down the video player with these buttons.", + "Go ahead and try that now.", + "Make me talk faster and slower.", + "If you ever get frustrated by the pace of speech, you can", + "adjust it this way.", + "Another great feature is the transcript on the side.", + "This will follow along with everything that I am saying as", + "I am saying it, so you can read along if you like.", + "You can also click on any of the words, and you will notice", + "that the video jumps to that word.", + "The video slider at the bottom of the video will let you", + "navigate through the video quickly.", + "If you ever find the transcript distracting, you", + "can toggle the captioning button in order to make it go", + "away or reappear.", + "Now that you know about the video player, I want to point", + "out the sequence navigator.", + "Right now you're in a lecture sequence, which interweaves", + "many videos and practice exercises.", + "You can see how far you are in a particular sequence by", + "observing which tab you're on.", + "You can navigate directly to any video or exercise by", + "clicking on the appropriate tab.", + "You can also progress to the next element by pressing the", + "Arrow button, or by clicking on the next tab.", + "Try that now.", + "The tutorial will continue in the next video." + ] +} \ No newline at end of file diff --git a/common/test/data/manual-testing-complete/tabs/8e4cce2b4aaf4ba28b1220804619e41f.html b/common/test/data/manual-testing-complete/tabs/8e4cce2b4aaf4ba28b1220804619e41f.html new file mode 100644 index 0000000000..db06449a3c --- /dev/null +++ b/common/test/data/manual-testing-complete/tabs/8e4cce2b4aaf4ba28b1220804619e41f.html @@ -0,0 +1 @@ +

static 463139

\ No newline at end of file diff --git a/common/test/data/manual-testing-complete/vertical/0a1602f0f191422ba5ed727f903627b2.xml b/common/test/data/manual-testing-complete/vertical/0a1602f0f191422ba5ed727f903627b2.xml new file mode 100644 index 0000000000..5e79288fbd --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/0a1602f0f191422ba5ed727f903627b2.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/0b693c2547674645a8afd0be4c57b8b7.xml b/common/test/data/manual-testing-complete/vertical/0b693c2547674645a8afd0be4c57b8b7.xml new file mode 100644 index 0000000000..f8bdfab245 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/0b693c2547674645a8afd0be4c57b8b7.xml @@ -0,0 +1 @@ + diff --git a/common/test/data/manual-testing-complete/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml b/common/test/data/manual-testing-complete/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml new file mode 100644 index 0000000000..42144cfeb2 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/0b73083f132c4ecb8ea24a363efcbc68.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/18b50987e2d84bcca2cfc74ef6b25275.xml b/common/test/data/manual-testing-complete/vertical/18b50987e2d84bcca2cfc74ef6b25275.xml new file mode 100644 index 0000000000..34823d0ceb --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/18b50987e2d84bcca2cfc74ef6b25275.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/193fbc9bb9184ba685d01430cb2025d3.xml b/common/test/data/manual-testing-complete/vertical/193fbc9bb9184ba685d01430cb2025d3.xml new file mode 100644 index 0000000000..c61914e0a4 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/193fbc9bb9184ba685d01430cb2025d3.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml b/common/test/data/manual-testing-complete/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml new file mode 100644 index 0000000000..1ad9bcdabc --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/1f17ac7c38b2421b8c6027c3652366c6.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/224cff129b784243a79f08dd7203151c.xml b/common/test/data/manual-testing-complete/vertical/224cff129b784243a79f08dd7203151c.xml new file mode 100644 index 0000000000..07040d1769 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/224cff129b784243a79f08dd7203151c.xml @@ -0,0 +1,3 @@ + + diff --git a/common/test/data/manual-testing-complete/vertical/3a7305c59c254ce9814093f98b913e8a.xml b/common/test/data/manual-testing-complete/vertical/3a7305c59c254ce9814093f98b913e8a.xml new file mode 100644 index 0000000000..d260d6cbdc --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/3a7305c59c254ce9814093f98b913e8a.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/4502126328484ed58c87e7ba3b0fa21d.xml b/common/test/data/manual-testing-complete/vertical/4502126328484ed58c87e7ba3b0fa21d.xml new file mode 100644 index 0000000000..974d81d1ad --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/4502126328484ed58c87e7ba3b0fa21d.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/4aeec80b652c4cc2bf38c248d6440c9f.xml b/common/test/data/manual-testing-complete/vertical/4aeec80b652c4cc2bf38c248d6440c9f.xml new file mode 100644 index 0000000000..6d6be1767d --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/4aeec80b652c4cc2bf38c248d6440c9f.xml @@ -0,0 +1,4 @@ + + + + diff --git a/common/test/data/manual-testing-complete/vertical/50c89b9bf3bc40c2bb723fc7d1c756d1.xml b/common/test/data/manual-testing-complete/vertical/50c89b9bf3bc40c2bb723fc7d1c756d1.xml new file mode 100644 index 0000000000..87da8a8979 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/50c89b9bf3bc40c2bb723fc7d1c756d1.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/53142c50e5284f9798e8e0cab8471528.xml b/common/test/data/manual-testing-complete/vertical/53142c50e5284f9798e8e0cab8471528.xml new file mode 100644 index 0000000000..5d17de072c --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/53142c50e5284f9798e8e0cab8471528.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/536b3582ce354e9da79f157077172bb3.xml b/common/test/data/manual-testing-complete/vertical/536b3582ce354e9da79f157077172bb3.xml new file mode 100644 index 0000000000..abef6523e9 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/536b3582ce354e9da79f157077172bb3.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/572f898249da49bc9ee426804302aa24.xml b/common/test/data/manual-testing-complete/vertical/572f898249da49bc9ee426804302aa24.xml new file mode 100644 index 0000000000..37bd577363 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/572f898249da49bc9ee426804302aa24.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml b/common/test/data/manual-testing-complete/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml new file mode 100644 index 0000000000..a34af38eb8 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/5887a034ad17480393c5ebca4b8fd1d4.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/6b1a4d545905465ca491f0115b6e759b.xml b/common/test/data/manual-testing-complete/vertical/6b1a4d545905465ca491f0115b6e759b.xml new file mode 100644 index 0000000000..633db3180a --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/6b1a4d545905465ca491f0115b6e759b.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/6b54ae89dc554f77b4dd94e1d9911df6.xml b/common/test/data/manual-testing-complete/vertical/6b54ae89dc554f77b4dd94e1d9911df6.xml new file mode 100644 index 0000000000..11891b6a20 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/6b54ae89dc554f77b4dd94e1d9911df6.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/6cb018f4cc884e98b9df621b4cc54a29.xml b/common/test/data/manual-testing-complete/vertical/6cb018f4cc884e98b9df621b4cc54a29.xml new file mode 100644 index 0000000000..9c4b4a1cfe --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/6cb018f4cc884e98b9df621b4cc54a29.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/81323bb6c1cd4b83b8cd1e9b8fb119a7.xml b/common/test/data/manual-testing-complete/vertical/81323bb6c1cd4b83b8cd1e9b8fb119a7.xml new file mode 100644 index 0000000000..3cfa07b8c5 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/81323bb6c1cd4b83b8cd1e9b8fb119a7.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/856a9709ac974c92b539710bb64fb4c5.xml b/common/test/data/manual-testing-complete/vertical/856a9709ac974c92b539710bb64fb4c5.xml new file mode 100644 index 0000000000..0856a7f82b --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/856a9709ac974c92b539710bb64fb4c5.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/93113ad02cac43659c0e1833880408f3.xml b/common/test/data/manual-testing-complete/vertical/93113ad02cac43659c0e1833880408f3.xml new file mode 100644 index 0000000000..3258e5bd90 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/93113ad02cac43659c0e1833880408f3.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/999c7e94329144cdb844aec9671fc8ca.xml b/common/test/data/manual-testing-complete/vertical/999c7e94329144cdb844aec9671fc8ca.xml new file mode 100644 index 0000000000..c86200a7e2 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/999c7e94329144cdb844aec9671fc8ca.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/99ab6b79e2b6426f9bc7e07e8540a655.xml b/common/test/data/manual-testing-complete/vertical/99ab6b79e2b6426f9bc7e07e8540a655.xml new file mode 100644 index 0000000000..31090c9895 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/99ab6b79e2b6426f9bc7e07e8540a655.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/a99ab4f608de41e9927d281dcfbd4343.xml b/common/test/data/manual-testing-complete/vertical/a99ab4f608de41e9927d281dcfbd4343.xml new file mode 100644 index 0000000000..44ee10968b --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/a99ab4f608de41e9927d281dcfbd4343.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/b34ef5e4257b4a34a60c2679aeeb5455.xml b/common/test/data/manual-testing-complete/vertical/b34ef5e4257b4a34a60c2679aeeb5455.xml new file mode 100644 index 0000000000..f157dcad32 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/b34ef5e4257b4a34a60c2679aeeb5455.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/bcb995ca53934a7b8aee27f81d96d189.xml b/common/test/data/manual-testing-complete/vertical/bcb995ca53934a7b8aee27f81d96d189.xml new file mode 100644 index 0000000000..97463568b8 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/bcb995ca53934a7b8aee27f81d96d189.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/be87d2061b8f41be87293fcc643514c7.xml b/common/test/data/manual-testing-complete/vertical/be87d2061b8f41be87293fcc643514c7.xml new file mode 100644 index 0000000000..743e2e2a79 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/be87d2061b8f41be87293fcc643514c7.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/c641d8fe821440bea1781287d05fdc82.xml b/common/test/data/manual-testing-complete/vertical/c641d8fe821440bea1781287d05fdc82.xml new file mode 100644 index 0000000000..1e592847ad --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/c641d8fe821440bea1781287d05fdc82.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/c7c39a80da5f4ac4935ab83790528063.xml b/common/test/data/manual-testing-complete/vertical/c7c39a80da5f4ac4935ab83790528063.xml new file mode 100644 index 0000000000..9613a1fa6b --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/c7c39a80da5f4ac4935ab83790528063.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/c87ff358615846b08b85f66ebce94fb3.xml b/common/test/data/manual-testing-complete/vertical/c87ff358615846b08b85f66ebce94fb3.xml new file mode 100644 index 0000000000..db491fd838 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/c87ff358615846b08b85f66ebce94fb3.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/cd6b719c0f9c46e7abd2d44c37d49cd8.xml b/common/test/data/manual-testing-complete/vertical/cd6b719c0f9c46e7abd2d44c37d49cd8.xml new file mode 100644 index 0000000000..ee18a9951e --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/cd6b719c0f9c46e7abd2d44c37d49cd8.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/da4f07aceaf542f5b1807c779a719067.xml b/common/test/data/manual-testing-complete/vertical/da4f07aceaf542f5b1807c779a719067.xml new file mode 100644 index 0000000000..5f5766c6ba --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/da4f07aceaf542f5b1807c779a719067.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/ddd289f35194456eaa470a3fd0d08ca2.xml b/common/test/data/manual-testing-complete/vertical/ddd289f35194456eaa470a3fd0d08ca2.xml new file mode 100644 index 0000000000..92b8e86dae --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/ddd289f35194456eaa470a3fd0d08ca2.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/de8fb6b7e0904de3a39db9d4bfaab6a2.xml b/common/test/data/manual-testing-complete/vertical/de8fb6b7e0904de3a39db9d4bfaab6a2.xml new file mode 100644 index 0000000000..7d3f90395d --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/de8fb6b7e0904de3a39db9d4bfaab6a2.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/e34798bf546a4178ab76afe3a5f729af.xml b/common/test/data/manual-testing-complete/vertical/e34798bf546a4178ab76afe3a5f729af.xml new file mode 100644 index 0000000000..8147a41ae3 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/e34798bf546a4178ab76afe3a5f729af.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/e81c7ddcf5434387a2a6163ca973520c.xml b/common/test/data/manual-testing-complete/vertical/e81c7ddcf5434387a2a6163ca973520c.xml new file mode 100644 index 0000000000..1e78ad0509 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/e81c7ddcf5434387a2a6163ca973520c.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/e8a308821e204375905bedc227fa769f.xml b/common/test/data/manual-testing-complete/vertical/e8a308821e204375905bedc227fa769f.xml new file mode 100644 index 0000000000..a27a6879c6 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/e8a308821e204375905bedc227fa769f.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/e9c213fb60134b93a3b1b4ba882cb1a7.xml b/common/test/data/manual-testing-complete/vertical/e9c213fb60134b93a3b1b4ba882cb1a7.xml new file mode 100644 index 0000000000..e96dcc7f0c --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/e9c213fb60134b93a3b1b4ba882cb1a7.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/ec70919ea9c24ed192e37e7d022d4133.xml b/common/test/data/manual-testing-complete/vertical/ec70919ea9c24ed192e37e7d022d4133.xml new file mode 100644 index 0000000000..0fc5148b4a --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/ec70919ea9c24ed192e37e7d022d4133.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/vertical/f3387cc263aa4e2e9070b6954a9c1b90.xml b/common/test/data/manual-testing-complete/vertical/f3387cc263aa4e2e9070b6954a9c1b90.xml new file mode 100644 index 0000000000..097d4b0e93 --- /dev/null +++ b/common/test/data/manual-testing-complete/vertical/f3387cc263aa4e2e9070b6954a9c1b90.xml @@ -0,0 +1,3 @@ + + + diff --git a/common/test/data/manual-testing-complete/video/37ec61cf011c429db8cb5f49b47681f7.xml b/common/test/data/manual-testing-complete/video/37ec61cf011c429db8cb5f49b47681f7.xml new file mode 100644 index 0000000000..70b1c66bca --- /dev/null +++ b/common/test/data/manual-testing-complete/video/37ec61cf011c429db8cb5f49b47681f7.xml @@ -0,0 +1 @@ +