Commit 437aadb2 by Will Daly

Cleaned up some tests; deleted skip tests

parent faf5c3f0
from mock import MagicMock, patch
import datetime
from django.test import TestCase
from django.contrib.auth.models import User
from django.conf import settings
from django.test.utils import override_settings
from student.models import CourseEnrollment
import courseware.courses as courses
from xmodule.modulestore.xml import XMLModuleStore
from xmodule.modulestore.django import modulestore
from xmodule.modulestore import Location
def xml_store_config(data_dir):
return {
'default': {
'ENGINE': 'xmodule.modulestore.xml.XMLModuleStore',
'OPTIONS': {
'data_dir': data_dir,
'default_class': 'xmodule.hidden_module.HiddenDescriptor',
}
}
}
TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT
TEST_DATA_XML_MODULESTORE = xml_store_config(TEST_DATA_DIR)
@override_settings(MODULESTORE=TEST_DATA_XML_MODULESTORE)
class CoursesTestCase(TestCase):
def setUp(self):
## self.user = User.objects.create(username='dummy', password='123456',
## email='test@mit.edu')
## self.date = datetime.datetime(2013,1,22)
## self.enrollment = CourseEnrollment.objects.get_or_create(user = self.user,
## course_id = self.course_id,
## created = self.date)[0]
self._MODULESTORES = {}
#self.course_id = 'edx/toy/2012_Fall'
self.toy_course = modulestore().get_course('edX/toy/2012_Fall')
def test_get_course_by_id(self):
courses.get_course_by_id("edX/toy/2012_Fall")
@override_settings(MODULESTORE=TEST_DATA_XML_MODULESTORE)
class CoursesTests(TestCase):
# runs
def setUp(self):
self._MODULESTORES = {}
#self.course_id = 'edX/toy/2012_Fall'
self.toy_course = modulestore().get_course('edX/toy/2012_Fall')
## self.fake_user = User.objects.create(is_superuser=True)
'''
no test written for get_request_for_thread
'''
def test_get_course_by_id(self):
#self.test_course_id = "edX/toy/2012_Fall"
courses.get_course_by_id("edX/toy/2012_Fall")
# print modulestore().get_instance(test_course_id, Location('i4x', 'edx', 'toy', 'course', '2012_Fall'))
#self.assertEqual(courses.get_course_by_id(self.test_course_id),modulestore().get_instance(self.test_course_id, Location('i4x', 'edX', 'toy', 'course', '2012_Fall'), None))
......@@ -4,7 +4,6 @@ import json
import factory
import unittest
from nose.tools import set_trace
from nose.plugins.skip import SkipTest
from django.http import Http404, HttpResponse, HttpRequest
from django.conf import settings
......@@ -74,62 +73,6 @@ class ModuleRenderTestCase(PageLoader):
self.assertIsNone(render.get_instance_module('dummy', mock_user_2,
mock_module,'dummy'))
def test_get_shared_instance_module(self):
raise SkipTest
mock_user = MagicMock(User)
mock_user.is_authenticated.return_value = False
self.assertIsNone(render.get_shared_instance_module('dummy', mock_user, 'dummy',
'dummy'))
mock_user_2 = MagicMock(User)
mock_user_2.is_authenticated.return_value = True
mock_module = MagicMock(shared_state_key = 'key')
mock_module.location = Location('i4x', 'edX', 'toy', 'chapter', 'Overview')
mock_module.get_shared_state.return_value = '{}'
mock_cache = MagicMock()
mock_cache.lookup.return_value = False
#mock_cache._state = 'dummy'
#set_trace()
print mock_module.get_shared_state()
s = render.get_shared_instance_module(self.course_id, mock_user_2,
mock_module, mock_cache)
self.assertIsInstance(s, StudentModule)
# Problem: can't get code to take branch that creates StudentModule?
# Can't finish testing modx_dispatch
def test_xqueue_callback(self):
mock_request = MagicMock()
mock_request.POST.copy.return_value = {}
# 339
self.assertRaises(Http404, render.xqueue_callback,mock_request,
'dummy', 'dummy', 'dummy', 'dummy')
mock_request_2 = MagicMock()
xpackage = {'xqueue_header': json.dumps({}),
'xqueue_body' : 'Message from grader'}
mock_request_2.POST.copy.return_value = xpackage
# 342
self.assertRaises(Http404, render.xqueue_callback,mock_request_2,
'dummy', 'dummy', 'dummy', 'dummy')
mock_request_3 = MagicMock()
xpackage_2 = {'xqueue_header': json.dumps({'lms_key':'secretkey'}),
'xqueue_body' : 'Message from grader'}
mock_request_3.POST.copy.return_value = xpackage_2
# Roadblock: how to get user registered in class?
raise SkipTest
#
# trying alternate way of creating account in hopes of getting valid id
# Problem: Can't activate user
self.student_name = '12'
self.password = 'foo'
self.email = 'test@mit.edu'
self.create_account(self.student_name, self.email, self.password)
self.activate_user(self.email)
request = RequestFactory().get('stuff')
# This doesn't work to install user
render.xqueue_callback(mock_request_3, self.course_id,
self.student_name, self.password, 'dummy')
def test_modx_dispatch(self):
self.assertRaises(Http404, render.modx_dispatch, 'dummy', 'dummy',
'invalid Location', 'dummy')
......@@ -162,40 +105,10 @@ class ModuleRenderTestCase(PageLoader):
mock_request_3, 'dummy', self.location, 'toy')
self.assertRaises(Http404,render.modx_dispatch, mock_request_3, 'dummy',
self.location, self.course_id)
## student_module_cache = StudentModuleCache.cache_for_descriptor_descendents(self.course_id,
## mock_request_3.user, modulestore().get_instance(self.course_id, self.location))
## get_shared_instance_module(course_id, request.user, instance, student_module_cache)
# 'goto_position' is the only dispatch that will work
mock_request_3.POST.copy.return_value = {'position':1}
self.assertIsInstance(render.modx_dispatch(mock_request_3, 'goto_position',
self.location, self.course_id), HttpResponse)
# keep going
def test_preview_chemcalc(self):
mock_request = MagicMock(method = 'notGET')
self.assertRaises(Http404, render.preview_chemcalc, mock_request)
mock_request_2 = MagicMock(method = 'GET')
mock_request_2.GET.get.return_value = None
self.assertEquals(render.preview_chemcalc(mock_request_2).content,
json.dumps({'preview':'',
'error':'No formula specified.'}))
mock_request_3 = MagicMock()
mock_request_3.method = 'GET'
# Test fails because chemcalc.render_to_html always parses strings?
mock_request_3.GET.get.return_value = unicode('\x12400', errors="strict")
## self.assertEquals(render.preview_chemcalc(mock_request_3).content,
## json.dumps({'preview':'',
## 'error':"Couldn't parse formula: formula"}))
##
mock_request_3 = MagicMock()
mock_request_3.method = 'GET'
mock_request_3.GET.get.return_value = Stub()
self.assertEquals(render.preview_chemcalc(mock_request_3).content,
json.dumps({'preview':'',
'error':"Error while rendering preview"}))
def test_get_score_bucket(self):
self.assertEquals(render.get_score_bucket(0, 10), 'incorrect')
self.assertEquals(render.get_score_bucket(1, 10), 'partial')
......
......@@ -19,8 +19,6 @@ from xmodule.modulestore.exceptions import InvalidLocationError,\
import courseware.views as views
from xmodule.modulestore import Location
#from override_settings import override_settings
class Stub():
pass
......@@ -45,9 +43,6 @@ def xml_store_config(data_dir):
TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT
TEST_DATA_XML_MODULESTORE = xml_store_config(TEST_DATA_DIR)
#class ModulestoreTest(TestCase):
@override_settings(MODULESTORE=TEST_DATA_XML_MODULESTORE)
class TestJumpTo(TestCase):
"""Check the jumpto link for a course"""
......@@ -134,27 +129,9 @@ class ViewsTestCase(TestCase):
mock_course.id = self.course_id
self.assertTrue(views.registered_for_course(mock_course, self.user))
def test_jump_to(self):
def test_jump_to_invalid(self):
request = self.request_factory.get(self.chapter_url)
self.assertRaisesRegexp(Http404, 'Invalid location', views.jump_to,
request, 'bar', ())
self.assertRaisesRegexp(Http404, 'No data*', views.jump_to, request,
'dummy', self.location)
## print type(self.toy_course)
## print dir(self.toy_course)
## print self.toy_course.location
## print self.toy_course.__dict__
## valid = ['i4x', 'edX', 'toy', 'chapter', 'overview']
## L = Location('i4x', 'edX', 'toy', 'chapter', 'Overview', None)
##
## views.jump_to(request, 'dummy', L)
def test_static_tab(self):
request = self.request_factory.get('foo')
request.user = self.user
self.assertRaises(Http404, views.static_tab, request, 'edX/toy/2012_Fall',
'dummy')
# What are valid tab_slugs?
## request_2 = self.request_factory.get('foo')
## request_2.user = UserFactory()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment