I'm writing unit tests in Python for the first time, for a Django app. I've struck a problem. In order to test a particular piece of functionality, I need to change the value of one of the app's settings. Here's my first attempt:
def test_in_list(self):
mango.settings.META_LISTS = ('tags',)
tags = Document(filepath).meta['tags']
self.assertEqual(tags, [u'Markdown', u'Django', u'Mango'])
What I'm trying to do is change the value of META_LISTS such that the new value is used when the Document object is created. The relevant imports are...
# tests.py
from mango.models import Document
import mango.settings
# models.py
from mango.settings import *
If I've understood correctly, since models.py has already imported the names from mango.settings, changing the value of META_LISTS within mango.settings will not alter the value of META_LISTS within mango.models.
It's possible – likely even – that I'm going about this in completely the wrong way. What's the correct way to alter the value of such a "setting" from within a test case?
Edit: I failed to mention that the file models.py contains vanilla Python classes rather than Django models. I certainly need to rename this file!