63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
import os
|
|
import unittest
|
|
import tempfile
|
|
|
|
from django.conf import settings
|
|
from django.db import connection, models
|
|
|
|
from south.db import db
|
|
from south.logger import close_logger
|
|
|
|
class TestLogger(unittest.TestCase):
|
|
|
|
"""
|
|
Tests if the logging is working reasonably. Some tests ignored if you don't
|
|
have write permission to the disk.
|
|
"""
|
|
|
|
def setUp(self):
|
|
db.debug = False
|
|
self.test_path = tempfile.mkstemp(suffix=".south.log")[1]
|
|
|
|
def test_db_execute_logging_nofile(self):
|
|
"Does logging degrade nicely if SOUTH_DEBUG_ON not set?"
|
|
settings.SOUTH_LOGGING_ON = False # this needs to be set to False
|
|
# to avoid issues where other tests
|
|
# set this to True. settings is shared
|
|
# between these tests.
|
|
db.create_table("test9", [('email_confirmed', models.BooleanField(default=False))])
|
|
|
|
def test_db_execute_logging_validfile(self):
|
|
"Does logging work when passing in a valid file?"
|
|
settings.SOUTH_LOGGING_ON = True
|
|
settings.SOUTH_LOGGING_FILE = self.test_path
|
|
# Check to see if we can make the logfile
|
|
try:
|
|
fh = open(self.test_path, "w")
|
|
except IOError:
|
|
# Permission was denied, ignore the test.
|
|
return
|
|
else:
|
|
fh.close()
|
|
# Do an action which logs
|
|
db.create_table("test10", [('email_confirmed', models.BooleanField(default=False))])
|
|
# Close the logged file
|
|
close_logger()
|
|
try:
|
|
os.remove(self.test_path)
|
|
except:
|
|
# It's a tempfile, it's not vital we remove it.
|
|
pass
|
|
|
|
def test_db_execute_logging_missingfilename(self):
|
|
"Does logging raise an error if there is a missing filename?"
|
|
settings.SOUTH_LOGGING_ON = True
|
|
settings.SOUTH_LOGGING_FILE = None
|
|
self.assertRaises(
|
|
IOError,
|
|
db.create_table,
|
|
"test11",
|
|
[('email_confirmed', models.BooleanField(default=False))],
|
|
)
|
|
|
|
|