On the older firefox version (28), the offset approach fails. This
update is being made as part of an effort to upgrade to firefox 42
incrementally. So we are including logic for Firefox 28 vs 42 that
we can remove after the upgrade.
Firefox 42 is faster than the version we're currently using for platform tests. This failure
occurs in the brief amount of time where the teams page is reloading. Waiting for the actual
team list to appear before moving on with tests solves the issue. Approx 4 testcases are fixed.
Below is an example of error that was appearing in firefox 42 tests:
```
Error Message
Not on the correct page to use '<common.test.acceptance.pages.studio.users.CourseTeamPage object at 0x7feb9fdb0490>' at URL 'http://localhost:8031/course_team/course-v1:test_org+321550032104190792981383915127220335686+test_run'
-------------------- >> begin captured logging << --------------------
bok_choy.browser: INFO: Using local browser: firefox [Default is firefox]
--------------------- >> end captured logging << ---------------------
Stacktrace
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/home/jenkins/workspace/edx-platform-test-subset/common/test/acceptance/tests/studio/test_studio_course_team.py", line 147, in test_added_users_cannot_add_or_delete_other_users
self._assert_user_present(self.other_user, present=True)
File "/home/jenkins/workspace/edx-platform-test-subset/common/test/acceptance/tests/studio/test_studio_course_team.py", line 78, in _assert_user_present
description="Wait for user to be present"
File "/home/jenkins/edx-venv/local/lib/python2.7/site-packages/bok_choy/page_object.py", line 490, in wait_for
return EmptyPromise(promise_check_func, description, timeout=timeout).fulfill()
File "/home/jenkins/edx-venv/local/lib/python2.7/site-packages/bok_choy/promise.py", line 92, in fulfill
is_fulfilled, result = self._check_fulfilled()
File "/home/jenkins/edx-venv/local/lib/python2.7/site-packages/bok_choy/promise.py", line 118, in _check_fulfilled
is_fulfilled, result = self._check_func()
File "/home/jenkins/edx-venv/local/lib/python2.7/site-packages/bok_choy/promise.py", line 173, in <lambda>
full_check_func = lambda: (check_func(), None)
File "/home/jenkins/workspace/edx-platform-test-subset/common/test/acceptance/tests/studio/test_studio_course_team.py", line 77, in <lambda>
lambda: user.get('username') in self.page.usernames,
File "/home/jenkins/edx-venv/local/lib/python2.7/site-packages/bok_choy/page_object.py", line 66, in wrapper
self._verify_page() # pylint: disable=protected-access
File "/home/jenkins/edx-venv/local/lib/python2.7/site-packages/bok_choy/page_object.py", line 331, in _verify_page
raise WrongPageError(msg)
"Not on the correct page to use '<common.test.acceptance.pages.studio.users.CourseTeamPage object at 0x7feb9fdb0490>' at URL 'http://localhost:8031/course_team/course-v1:test_org+321550032104190792981383915127220335686+test_run'\n-------------------- >> begin captured logging << --------------------\nbok_choy.browser: INFO: Using local browser: firefox [Default is firefox]\n--------------------- >> end captured logging << ---------------------"
```
These action chains are invalid for later versions of selenium (which
are needed for upgrading the version of firefox we test on); they will
result in output like this:
```
WebDriverException: Message: UnknownError: Cannot release a button when no button is pressed.'UnknownError: Cannot release a button when no button is pressed.' when calling method: [wdIMouse::up]
Stacktrace:
at FirefoxDriver.prototype.mouseButtonUp (file:///tmp/tmp6LL1Ye/extensions/fxdriver@googlecode.com/components/driver-component.js:10979)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmp6LL1Ye/extensions/fxdriver@googlecode.com/components/command-processor.js:12534)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmp6LL1Ye/extensions/fxdriver@googlecode.com/components/command-processor.js:12539)
at DelayedCommand.prototype.execute/< (file:///tmp/tmp6LL1Ye/extensions/fxdriver@googlecode.com/components/command-processor.js:12481)
```
added unit tests and fixed JS tests
added bok choy tests
fixed broken botchoy tests
fixed course discovery broken test
removed monkey patch at class level
changes after feedback from matte
Changed 'forceRoundTime' to 'false' in BaseDateEditor
Updated bok choy acceptance test 'studio.test_studio_outline.py:EditingSectionsTest.test_can_edit_subsections' to check times aren't rounded to the nearest half hour after saving
Also added myself to AUTHORS
The Programs authoring app is a Backbone SPA maintained in a separate repository. The app handles its own routing and provides a UI which can be used to create and publish new Programs (e.g, XSeries). ECOM-2598.
Fix a flaky test condition that only occurs in
multiprocessing mode. Make the page definition more
specific; the previous implementation would not fully
render all objects in time.
Avoid race condition related to events order (in faster,
multiprocess testing, the order is not exactly the same since
some events arrive at once).
Extends the Programs ConfigurationModel, cleans up Programs-related utilities and corresponding tests, and corrects caching. Uses the Programs API to list programs within Studio. ECOM-2769.