From abd4859f8bac46fd6d114352ffad4ee9af28aa5f Mon Sep 17 00:00:00 2001 From: Matjaz Gregoric Date: Mon, 20 Nov 2017 08:09:03 +0100 Subject: [PATCH] Convert test to DDT and test for primary, nearest modes. --- .../xmodule/xmodule/tests/test_mongo_utils.py | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/common/lib/xmodule/xmodule/tests/test_mongo_utils.py b/common/lib/xmodule/xmodule/tests/test_mongo_utils.py index ff9a7857df..6c6116148d 100644 --- a/common/lib/xmodule/xmodule/tests/test_mongo_utils.py +++ b/common/lib/xmodule/xmodule/tests/test_mongo_utils.py @@ -1,4 +1,7 @@ -"""Tests for methods defined in mongo_utils.py""" +""" +Tests for methods defined in mongo_utils.py +""" +import ddt import os from unittest import TestCase from uuid import uuid4 @@ -10,19 +13,26 @@ from django.conf import settings from xmodule.mongo_utils import connect_to_mongodb +@ddt.ddt class MongoUtilsTests(TestCase): """ Tests for methods exposed in mongo_utils """ - def test_connect_to_mongo_read_preference(self): + @ddt.data( + ('PRIMARY', 'primary', ReadPreference.PRIMARY), + ('SECONDARY_PREFERRED', 'secondaryPreferred', ReadPreference.SECONDARY_PREFERRED), + ('NEAREST', 'nearest', ReadPreference.NEAREST), + ) + @ddt.unpack + def test_connect_to_mongo_read_preference(self, enum_name, mongos_name, expected_read_preference): """ Test that read_preference parameter gets converted to a valid pymongo read preference. """ host = 'edx.devstack.mongo' if 'BOK_CHOY_HOSTNAME' in os.environ else 'localhost' db = 'test_read_preference_%s' % uuid4().hex # Support for read_preference given in constant name form (ie. PRIMARY, SECONDARY_PREFERRED) - connection = connect_to_mongodb(db, host, read_preference='SECONDARY_PREFERRED') - self.assertEqual(connection.client.read_preference, ReadPreference.SECONDARY_PREFERRED) + connection = connect_to_mongodb(db, host, read_preference=enum_name) + self.assertEqual(connection.client.read_preference, expected_read_preference) # Support for read_preference given as mongos name. - connection = connect_to_mongodb(db, host, read_preference='secondaryPreferred') - self.assertEqual(connection.client.read_preference, ReadPreference.SECONDARY_PREFERRED) + connection = connect_to_mongodb(db, host, read_preference=mongos_name) + self.assertEqual(connection.client.read_preference, expected_read_preference)