From bf945e2aec358602c40593cd446a157fb57db1e6 Mon Sep 17 00:00:00 2001 From: Eric Herrera Date: Tue, 23 Jun 2020 21:21:57 -0500 Subject: [PATCH] Separate tests according to the python version, due to incompatibilities in sorted dicts. --- .../django_comment_client/tests/test_utils.py | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/lms/djangoapps/discussion/django_comment_client/tests/test_utils.py b/lms/djangoapps/discussion/django_comment_client/tests/test_utils.py index 1c9a45ffd9..9d00c4793d 100644 --- a/lms/djangoapps/discussion/django_comment_client/tests/test_utils.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/test_utils.py @@ -4,9 +4,11 @@ import datetime import json +import sys import ddt import mock +import pytest import six from django.test import RequestFactory, TestCase from django.urls import reverse @@ -949,6 +951,74 @@ class CategoryMapTestCase(CategoryMapTestMixin, ModuleStoreTestCase): } ) + @pytest.mark.skipif( + sys.version_info < (3, 7), + reason="Python 3.7 sorted dict insertion is considered" + ) + def test_sort_intermediates(self): + self.create_discussion("Chapter B", "Discussion 2") + self.create_discussion("Chapter C", "Discussion") + self.create_discussion("Chapter A", "Discussion 1") + self.create_discussion("Chapter B", "Discussion 1") + self.create_discussion("Chapter A", "Discussion 2") + + self.assert_category_map_equals( + { + "children": [("Chapter A", TYPE_SUBCATEGORY), ("Chapter B", TYPE_SUBCATEGORY), + ("Chapter C", TYPE_SUBCATEGORY)], + "entries": {}, + "subcategories": { + "Chapter A": { + "children": [("Discussion 1", TYPE_ENTRY), ("Discussion 2", TYPE_ENTRY)], + "entries": { + "Discussion 1": { + "id": "discussion3", + "sort_key": None, + "is_divided": False, + }, + "Discussion 2": { + "id": "discussion5", + "sort_key": None, + "is_divided": False, + } + }, + "subcategories": {}, + }, + "Chapter B": { + "children": [("Discussion 2", TYPE_ENTRY), ("Discussion 1", TYPE_ENTRY)], + "entries": { + "Discussion 2": { + "id": "discussion1", + "sort_key": None, + "is_divided": False, + }, + "Discussion 1": { + "id": "discussion4", + "sort_key": None, + "is_divided": False, + } + }, + "subcategories": {}, + }, + "Chapter C": { + "entries": { + "Discussion": { + "id": "discussion2", + "sort_key": None, + "is_divided": False, + } + }, + "children": [("Discussion", TYPE_ENTRY)], + "subcategories": {}, + } + }, + } + ) + + @pytest.mark.skipif( + sys.version_info >= (3, 7), + reason="Python 3.7 sorted dict insertion is not considered" + ) def test_sort_intermediates(self): self.create_discussion("Chapter B", "Discussion 2") self.create_discussion("Chapter C", "Discussion")