Commit Graph

1132 Commits

Author SHA1 Message Date
Hasnain Naveed
2316aba391 Merge pull request #22456 from edx/hasnain-naveed/ENT-1961
ENT-1961 | Making the manual enrollment reason field optional via con…
2019-12-13 11:03:20 +05:00
hasnain.naveed
c926a13f41 ENT-1961 | Making the manual enrollment reason field optional via configuration flag ENABLE_MANUAL_ENROLLMENT_REASON_FIELD. 2019-12-10 17:31:58 +05:00
Daniel Clemente Laboreo
a9476ea50e Add last_login and date_joined to the student profile export 2019-11-25 19:58:05 +01:00
Kyle McCormick
4f3262a40b Remove most references to old teams config scheme (#22238)
This is a follow up from MST-16, which was commited
in 3858036a4e.

Changes:
* Enrich course teams_configuration from a plain Dict
  to a custom XBlock field that uses the new TeamsConfig
  wrapper class.
* Remove teams_conf property from course, as the previous
  change made it redundant.
* Update teams_enabled implementation.
* Remove teams_max_size field from course, which is
  no longer semantically correct, as max team size
  is now defined on a teamset level.
* Remove teams_topics in order to discourage use of raw
  teams config dict.
* Add convenience properties teamsets and teamsets_by_id
  to course.
* Allow periods and spaces in teamset IDs to avoid breaking
  existing course teams.

Some parts of the code still use the old raw config data
(identifiable by searching "cleaned_data_old_format"),
which we expect to be slowly factored away as we build
new teams features. MST-40 has been created to remove any
remaining references if necessary.

MST-18

* fix: bokchoy test

* fix: remove pdb break
2019-11-06 20:43:32 -05:00
Awais Qureshi
3bea5b5d24 BOM-1005
Fixing encoding issue.
2019-11-01 18:41:44 +05:00
Feanil Patel
facd737ee4 Update code to use the new rounding method in course_grades.
So making this code change took a few hours. But then deciding that it
was the right one of the many options available took the next 3 days.

When changing to the new rounding function, we had a test that started
failing.  It appears as if our new rounding function is not the same in
some way as the one built into python 2.

```
>>> round(.0045*100 + .05)/100
0.0
>>> round_away_from_zero(.0045*100 + .05)/100
0.01
```

Doing the math by hand we see that the new function is actually correct
but the old one is clearly rounding incorrectly in this case. Looking
closer at this I discovered that it was due to a floating point issue
where .0045*100 is represented as 0.44999999999999996 so when we add
0.05 to this number we get 0.49999999999999994.  This is all because of
the limitations of floating point arithmetic.

See https://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues
for more on that.

Because python does its rounding at the bit level in C code.  It treats
the .4999... as below the .5 cutoff and rounds down. Whereas our code
does more simple arithmetic which causes the number to correct itself
before we round and so correctly rounds up to 0.01

The result of this change is that previously, the rounding threshold used to
be that any number > .0045 would ronud to 0.01 and now any number that
is >= .0045 rounds to 0.01

Note that if we only care about the two most significant digits of
number between 0 and 1, this error only manifests itself in such a way
that other than the case of going from 0.00 to 0.01 eg. from 0% to 1%
none of the other cases where we would now round up cause the 2 most
significant digits to change.  Given this level of impact, we're fine
with this change.

In our tests we see this for one case, where an incomplete turns into an
F in a test.  I'm updating the test here to be more correct.

As we were looking at it we speculated as to why we were adding the .05
to the number.  Could it be to counteract this floating point issue?  It
turns out not.

Looking at this commit(a1286b1c7d) we see that it
looks like this was intended to always round up to the nearest
percentage point.  However, there's a typo here.  If you wanted to
ensure that we always rounded up to the nearest percentage point you
would have the math be `round(final_grade_percent*100 + 0.5)/ 100` or a
simpler way to do this would be
`math.ceil(final_grade_percent*100)/100`.  However, that is not what
happened and 7 years later, there have been a lot of people graded with
the wrong rounding where essentialy anyone with a grade of 89.45 gets a
90 when the intended impact was supposed to be that anyone with a grade
above an 89.0 would get a grade of 90.

Changing it now requires a lot of conversation and wolud have a large
impact on existing learners.  So we are not going to change it as a part
of the python 2 -> python 3 upgrade.  I have created
https://openedx.atlassian.net/browse/TNL-6972  to capture this issue if
we want to address it in the future.
2019-10-31 14:29:57 -04:00
aarif
d176957708 Updated the tests to fix the string/bytes input
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
2019-10-14 18:47:18 +05:00
Awais Qureshi
91e7d8a7be BOM-913
reduce functions moves into functools in python3. Fixed the import.
Fixing bytes issue.
2019-10-10 20:06:08 +05:00
Awais Qureshi
59cdc80159 Merge pull request #21847 from edx/awais786/BOM-841
BOM-841
2019-09-30 22:24:26 +05:00
Nimisha Asthagiri
8cfc33c0f1 Python 3: multi-line regex replacement of assertIn and assertNotIn 2019-09-30 08:51:02 -04:00
Nimisha Asthagiri
4914c42364 Python 3: resp.content regex searches 2019-09-30 08:51:02 -04:00
Nimisha Asthagiri
9bbc21ea8c Python 3: multi-lined assertIn, assertNotIn -> assertContains, assertNotContains 2019-09-30 08:51:02 -04:00
Nimisha Asthagiri
beb95eb69c Python 3: assertIn -> assertContains consistency 2019-09-30 08:51:01 -04:00
Nimisha Asthagiri
ccefde8d3c Python-3: assertNotIn(..response.content) -> assertNotContains 2019-09-30 08:50:38 -04:00
Nimisha Asthagiri
a6b219a9e9 Python-3: assertIn(..response.content) -> assertContains 2019-09-30 08:50:38 -04:00
Awais Qureshi
5c8db66021 BOM-841
Python3 fix.
2019-09-30 13:47:50 +05:00
Ned Batchelder
efba6e45e8 Finally import courseware properly everywhere to get rid of a warning 2019-09-26 09:40:15 -04:00
Diana Huang
e80265bb9a Remove shoppingcart pdf generation.
DEPR-40
2019-09-25 09:07:09 -04:00
Jeremy Bowman
553d35e53e Upgrade mock BOM-596 (#21717) 2019-09-24 10:14:17 -04:00
Awais Qureshi
a0e4e94e31 BOM-482
Fixing python3
2019-09-20 20:18:18 +05:00
Ned Batchelder
835a84f33c Use bytestrings to create SimpleUploadedFiles. BOM-616 2019-09-19 10:32:23 -04:00
Feanil Patel
de0eafa0ba BOM-618 Decode test client content.
The django test client returns bytes, and many of our tests start using
it like a string. This was fine in python 2 but not in python3.
2019-09-18 14:58:30 -04:00
Awais Qureshi
762db8a2df Merge pull request #21624 from edx/awais786/BOM-426
BOM-426
2019-09-11 18:59:28 +05:00
Awais Qureshi
16e3ae71c1 BOM-426
Fixing python3
2019-09-11 17:17:00 +05:00
Aarif
8511c00ad9 Merge pull request #21529 from edx/BOM-131
BOM-131 Python 3 fixes
2019-09-11 16:17:18 +05:00
Awais Jibran
f98c819f74 Merge pull request #160 from edx/aj/add-noopener-to-new-window-urls
Update hyperlinks in platfrom
2019-09-06 11:43:38 +05:00
aarif
ec894ee10c python 3 fixes
fixed test failures

fixed test failures

python 3 fixes

fixed test failures

fixed test failures

changes made as suggested

minor change
2019-09-05 15:29:09 +05:00
Ayub khan
8e71206312 BOM-96
-fixes all issues
2019-09-02 13:30:33 +05:00
arbisoft
5a2114ac6c BOM-114
python2 tests failures.
2019-08-30 14:02:24 +05:00
Awais Jibran
1a4eb7d2e8 Pervent reverse tabnabbing in edx platform 2019-08-28 16:08:34 +05:00
noraiz-anwar
ffeff8db3d check for too long data in task_input field 2019-08-27 15:39:30 +05:00
Ayub khan
401e15b8bd BOM-241
py3 Assetion Error Fix
2019-08-23 14:44:35 +05:00
Uzair Rasheed
93a2259ec2 Merge pull request #21321 from edx/PROD-491/beta-tester-access-earn-cert
Beta tester doesn't allow to earn cert
2019-08-21 18:50:05 +05:00
uzairr
38cd616f06 Beta tester doesn't allow to earn cert
If beta tester wants to earn a cert then they must
create a separate user account by using email and
username different from the account with beta tester
role.

PROD-491
2019-08-21 16:24:00 +05:00
Dave St.Germain
8e725c9eee Prevent comparison to None 2019-08-19 16:21:28 -04:00
Dave St.Germain
521cdbe309 Response content is bytes 2019-08-19 16:16:31 -04:00
Dave St.Germain
eccfeef94b Convert from utf8 2019-08-19 15:13:37 -04:00
Nimisha Asthagiri
d564af8301 Fix for decode errors in bulk_email.tests.test_course_optout.py 2019-08-19 14:26:48 -04:00
David Ormsbee
9a1385585f Convert response bytes to str before JSON parsing. (#21375)
Convert response bytes to str before JSON parsing.
2019-08-19 11:01:55 -04:00
Feanil Patel
f5f875401a Fix some of the common test collection issues. (#21340)
* Remove old  performance tests that we haven't been running.

As far as I can tell, these tests to capture HAR files were created 5
years ago and not being run as a part of our suite?  They capture HAR
data that we do nothing with so even if they were running we should
remove them until we're ready to care about consuming this kind of
information.

* Update password test unicode string.
* Add ugettext translation helper function.
* Fix lambda syntax that is not valid in python 3.
* Fix ur raw strings which his not valid in python 3
* Use edx_six.get_gettext instead of ugettext.
* Fix a few other encoding issues.
* Don't use old form of sorted funciton.

This form which uses a 'cmp' method is not available in python 3.
2019-08-16 11:31:36 -04:00
Syed Muhammad Dawoud Sheraz Ali
22d3f802f2 Revert "[BB-873] Support for filters, and multiple roots in problem response reports" 2019-08-09 17:17:36 +05:00
David Ormsbee
98deba6ec3 Merge pull request #19781 from open-craft/kshtij/problem-response-multi-root-and-fitler
[BB-873] Support for filters, and multiple roots in problem response reports
2019-08-08 13:36:43 -04:00
Kshitij Sobti
98af7496d7 Add support for generating problem response reports for multiple blocks, or filtered block types.
This change adds support for specifying multiple root blocks while generating
problem response reports. It also allows specifying a block type filter so that
only blocks of the filtered types will be included in the report.

Finally, this change also consistenly uses absolute path for the location in the
report instead of relative paths.
2019-08-08 15:02:46 +05:30
aarif
61800c619f replaced StringIO imports with import from six
replaced cStringIO and StringIO imports with import from six

fixed StringIO imports

fixed StringIO imports

fixed XSS python-wrap warning
2019-08-08 00:09:16 +05:00
Calen Pennington
1f028e0be3 Merge pull request #21269 from cpennington/requires-level-permissions
Add a decorator that checks for course-level permissions
2019-08-06 15:09:43 -04:00
Calen Pennington
e0981f3b96 Switch generate_certificate_exceptions over to using a StaffAccessRule with query checking 2019-08-05 09:59:30 -04:00
Calen Pennington
23a91ba0f2 Switch generate_bulk_certificate_exceptions over to using a StaffAccessRule with query checking 2019-08-05 09:59:30 -04:00
Calen Pennington
b855275353 Switch enable_certificate_generation over to using a StaffAccessRule with query checking 2019-08-05 09:59:30 -04:00
Calen Pennington
32f154d3ea Switch reset_due_date over to using a StaffAccessRule with query checking 2019-08-05 09:59:30 -04:00
Calen Pennington
1aed6c882b Switch change_due_date over to using a StaffAccessRule with query checking 2019-08-05 09:59:30 -04:00