This is to deal with a special issue in the video descriptor xml output.
The value of the transcript attribute of the video tag is a serialized
json string. This can have comparison problems in python3 where the order
of the dictionary output is not gauranteed to be the same. So the strings
don't match equally. We convert the parsed json instead so that the
comparison can be correct.
See the commit that added round_away_from_zero for details.
IN the case of dashboard_data.py:
We don't first cast to decimal here because in python 2 this didn't do
anything. The python 2 rounding method would just cast things to float
before doing the rounding anyway so it just wastes cpu cycles. In
python 3 this causes some typing issues so just removing it.
Wrap CourseModule.teams_configuration in TeamsConfig
class, centralizing parsing, validation, error handling,
etc. Wrapped object is exposed on 'teams_conf' field.
Old code still uses 'teams_configuration' dict;
we should change this in the future (MST-18).
MST-16
changes made to fix jenkins/quality errors
changes made as suggested
added the docstring to fix quality issue
made a few changes to fix some tests
replaced json.loads with a util to handle bytes
changes made to fix jenkins/quality errors
changes made as suggested
added the docstring to fix quality issue
made a few changes to fix some tests
made changes as suggested
made changes as suggested
updated the requirements with make upgrade
changes made to pass tests with python 2 and other minor changes
Updated the tests to fix the string/bytes input
changes made to pass tests with python 2 and other minor changes
made some changes as suggested
made changes as suggested
changes made as suggested
The _id comes back as a dict and it's in the wrong order compared to the
dict stored in mongo. This results in lookups for deletion failing when
we use the '_id' as the lookup key.
Luckily the delete function also takes the asset_key as a valid key to
delete by so we just use that instead.
Treat transcript content as unicode strings and convert them at any edge
where we encounter them. One decision made here was to not update
edx-val it treats transcripts as byte but is much closer to the actual
files so it makes more sense over there. But within the platform they
are generally passed around as serialized json and so it's much better
for them to be unicode.