mirror of
https://github.com/moparisthebest/SickRage
synced 2024-11-11 11:55:03 -05:00
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from unittest import TestCase
|
|
from fanart.immutable import Immutable
|
|
|
|
|
|
class TestMutable(object):
|
|
def __init__(self, spam, ham, eggs):
|
|
self.spam = spam
|
|
self.ham = ham
|
|
self.eggs = eggs
|
|
|
|
@Immutable.mutablemethod
|
|
def anyway(self):
|
|
self.spam = self.ham + self.eggs
|
|
|
|
|
|
class TestImmutable(TestMutable, Immutable):
|
|
@Immutable.mutablemethod
|
|
def __init__(self, *args, **kwargs):
|
|
super(TestImmutable, self).__init__(*args, **kwargs)
|
|
|
|
|
|
class ImmutableTestCase(TestCase):
|
|
def setUp(self):
|
|
self.instance = TestImmutable('spam', 'ham', 'eggs')
|
|
|
|
def test_set_raises(self):
|
|
self.assertRaises(TypeError, self.instance.__setattr__, 'spam', 'ham')
|
|
|
|
def test_set(self):
|
|
self.instance._mutable = True
|
|
self.instance.spam = 'ham'
|
|
self.assertEqual(self.instance.spam, 'ham')
|
|
|
|
def test_del_raises(self):
|
|
self.assertRaises(TypeError, self.instance.__delattr__, 'spam')
|
|
|
|
def test_del(self):
|
|
self.instance._mutable = True
|
|
del self.instance.spam
|
|
self.assertRaises(AttributeError, self.instance.__getattribute__, 'spam')
|
|
|
|
def test_equal(self):
|
|
new_instance = TestImmutable('spam', 'ham', 'eggs')
|
|
self.assertEqual(self.instance, new_instance)
|
|
|
|
def test_mutable_dec(self):
|
|
instance = TestMutable('spam', 'ham', 'eggs')
|
|
instance.anyway()
|
|
self.assertEqual(instance.spam, 'hameggs')
|