Skip to content

Commit 8bf4b66

Browse files
authored
Merge pull request #228 from edx-solutions/awais786/python3-travis
BOM-470
2 parents 797a480 + c621de3 commit 8bf4b66

File tree

10 files changed

+40
-22
lines changed

10 files changed

+40
-22
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ language: python
22
sudo: false
33
python:
44
- "2.7"
5+
- "3.5"
56
services:
67
- xvfb
78
install:

drag_and_drop_v2/drag_and_drop_v2.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -654,8 +654,7 @@ def has_submission_deadline_passed(self):
654654
def student_view_user_state(self, request, suffix=''):
655655
""" GET all user-specific data, and any applicable feedback """
656656
data = self._get_user_state()
657-
658-
return webob.Response(body=json.dumps(data), content_type='application/json')
657+
return webob.Response(body=json.dumps(data).encode('utf-8'), content_type='application/json')
659658

660659
def _validate_do_attempt(self):
661660
"""
@@ -836,7 +835,15 @@ def _mark_complete_and_publish_grade(self):
836835
# ... and from higher grade to lower
837836
# if we have an old-style (i.e. unreliable) grade, override no matter what
838837
saved_raw_earned = self._get_raw_earned_if_set()
839-
if current_raw_earned is None or current_raw_earned > saved_raw_earned:
838+
839+
current_raw_earned_is_greater = False
840+
if current_raw_earned is None or saved_raw_earned is None:
841+
current_raw_earned_is_greater = True
842+
843+
if current_raw_earned is not None and saved_raw_earned is not None and current_raw_earned > saved_raw_earned:
844+
current_raw_earned_is_greater = True
845+
846+
if current_raw_earned is None or current_raw_earned_is_greater:
840847
self.raw_earned = current_raw_earned
841848
self._publish_grade(Score(self.raw_earned, self.max_score()))
842849

install_test_deps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Installs xblock-sdk and dependencies needed to run the tests suite.
22
# Run this script inside a fresh virtual environment.
3-
pip install -e git://github.com/edx/xblock-sdk.git@3b64219024d111f247a14e267cd5eaee72aefcd8#egg=xblock-sdk
3+
pip install -e git://github.com/edx/xblock-sdk.git@4d0027a040aec1be1a22dc9a4b8fc667bba0ddba#egg=xblock-sdk
44
cd $VIRTUAL_ENV/src/xblock-sdk/ && pip install -r requirements/base.txt \
55
&& pip install -r requirements/test.txt && cd -
66
pip install -r requirements.txt

openedx.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This file describes this Open edX repo, as described in OEP-2:
2+
# http://open-edx-proposals.readthedocs.io/en/latest/oeps/oep-0002.html#specification
3+
4+
tags:
5+
- xblock-drag-and-drop-v2
6+
- library
7+
oeps:
8+
oep-2: false
9+
oep-7: true
10+
oep-18: true

tests/integration/test_interaction.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -600,27 +600,27 @@ def _assert_zone_align_item(self, item_id, zone_id, align, action_key=None):
600600
"""
601601
# parent container has the expected alignment
602602
item_wrapper_selector = "div[data-uid='{zone_id}'] .item-wrapper".format(zone_id=zone_id)
603-
self.assertEquals(self._get_style(item_wrapper_selector, 'textAlign'), align)
603+
self.assertEqual(self._get_style(item_wrapper_selector, 'textAlign'), align)
604604

605605
# Items placed in zones with align setting are children of the zone
606606
zone_item_selector = '{item_wrapper_selector} .option'.format(item_wrapper_selector=item_wrapper_selector)
607607
prev_placed_items = self._page.find_elements_by_css_selector(zone_item_selector)
608608

609609
self.place_item(item_id, zone_id, action_key)
610610
placed_items = self._page.find_elements_by_css_selector(zone_item_selector)
611-
self.assertEquals(len(placed_items), len(prev_placed_items) + 1)
611+
self.assertEqual(len(placed_items), len(prev_placed_items) + 1)
612612

613613
# Not children of the target
614614
target_item = '.target > .option'
615-
self.assertEquals(len(self._page.find_elements_by_css_selector(target_item)), 0)
615+
self.assertEqual(len(self._page.find_elements_by_css_selector(target_item)), 0)
616616

617617
# Aligned items are relative positioned, with no transform or top/left
618-
self.assertEquals(self._get_style(zone_item_selector, 'position'), 'relative')
619-
self.assertEquals(self._get_style(zone_item_selector, 'transform'), 'none')
620-
self.assertEquals(self._get_style(zone_item_selector, 'left'), '0px')
621-
self.assertEquals(self._get_style(zone_item_selector, 'top'), '0px')
618+
self.assertEqual(self._get_style(zone_item_selector, 'position'), 'relative')
619+
self.assertEqual(self._get_style(zone_item_selector, 'transform'), 'none')
620+
self.assertEqual(self._get_style(zone_item_selector, 'left'), '0px')
621+
self.assertEqual(self._get_style(zone_item_selector, 'top'), '0px')
622622

623-
self.assertEquals(self._get_style(zone_item_selector, 'display'), 'inline-block')
623+
self.assertEqual(self._get_style(zone_item_selector, 'display'), 'inline-block')
624624

625625
@data(
626626
([0, 1, 2], "Zone No Align", "center"),

tests/integration/test_render.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def _test_item_style(self, item_element, style_settings):
9090
else:
9191
expected_background_color = Colors.rgb(style_settings['background-color'])
9292
background_color = self._get_style(item_selector, 'backgroundColor')
93-
self.assertEquals(background_color, expected_background_color)
93+
self.assertEqual(background_color, expected_background_color)
9494

9595
# Check text color
9696
color_property = 'color'
@@ -101,7 +101,7 @@ def _test_item_style(self, item_element, style_settings):
101101
else:
102102
expected_color = Colors.rgb(style_settings['color'])
103103
color = self._get_style(item_selector, 'color')
104-
self.assertEquals(color, expected_color)
104+
self.assertEqual(color, expected_color)
105105

106106
# Check outline color
107107
outline_color_property = 'outline-color'
@@ -110,7 +110,7 @@ def _test_item_style(self, item_element, style_settings):
110110
# Outline color should match text color to ensure it does not meld into background color:
111111
expected_outline_color = expected_color
112112
outline_color = self._get_style(item_selector, 'outlineColor')
113-
self.assertEquals(outline_color, expected_outline_color)
113+
self.assertEqual(outline_color, expected_outline_color)
114114

115115
def test_items_default_colors(self):
116116
self.load_scenario()
@@ -341,5 +341,5 @@ def test_zone_align(self):
341341
}
342342
for zone_id, expected_alignment in expected_alignments.items():
343343
selector = "{zone_id} .item-wrapper".format(zone_id=zone_id)
344-
self.assertEquals(self._get_style(selector, "textAlign"), expected_alignment)
345-
self.assertEquals(self._get_style(selector, "textAlign", computed=True), expected_alignment)
344+
self.assertEqual(self._get_style(selector, "textAlign"), expected_alignment)
345+
self.assertEqual(self._get_style(selector, "textAlign", computed=True), expected_alignment)

tests/integration/test_sizing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def _svg_to_data_uri(path):
2020
data_path = os.path.dirname(__file__) + "/data/"
2121
with open(data_path + path, "rb") as svg_fh:
2222
encoded = base64.b64encode(svg_fh.read())
23-
return "data:image/svg+xml;base64,{}".format(encoded)
23+
return "data:image/svg+xml;base64,{}".format(encoded.decode('utf-8'))
2424

2525

2626
Expectation = namedtuple('Expectation', [

tests/unit/test_advanced.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ def test_do_attempt_has_deadline_passed(self, is_past_deadline, status_code, exp
416416
response = self.call_handler(self.DO_ATTEMPT_HANDLER, data={}, expect_json=False)
417417
self.assertEqual(response.status_code, status_code)
418418
if expect_error:
419-
self.assertIn("Submission deadline has passed.", response.body)
419+
self.assertIn("Submission deadline has passed.", response.body.decode('utf-8'))
420420

421421
@ddt.data(*[random.randint(1, 50) for _ in range(5)]) # pylint: disable=star-args
422422
def test_do_attempt_correct_mark_complete_and_publish_grade(self, weight):

tests/unit/test_basics.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,6 @@ def test_legacy_state_support(self):
185185
'4': {'zone': BOTTOM_ZONE_ID, 'correct': False},
186186
}
187187
self.block.save()
188-
189188
self.assertEqual(self.call_handler('student_view_user_state')['items'], {
190189
'0': {'correct': True, 'zone': TOP_ZONE_ID},
191190
'1': {'correct': True, 'zone': MIDDLE_ZONE_ID},

tests/utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ def make_request(data, method='POST'):
1818
""" Make a webob JSON Request """
1919
request = Request.blank('/')
2020
request.method = 'POST'
21-
request.body = json.dumps(data).encode('utf-8') if data is not None else ""
21+
data = json.dumps(data).encode('utf-8') if data is not None else b''
22+
request.body = data
2223
request.method = method
2324
return request
2425

@@ -74,5 +75,5 @@ def call_handler(self, handler_name, data=None, expect_json=True, method='POST')
7475
response = self.block.handle(handler_name, make_request(data, method=method))
7576
if expect_json:
7677
self.assertEqual(response.status_code, 200)
77-
return json.loads(response.body)
78+
return json.loads(response.body.decode('utf-8'))
7879
return response

0 commit comments

Comments
 (0)