1
0
mirror of https://github.com/moparisthebest/SickRage synced 2024-11-11 11:55:03 -05:00
SickRage/lib/fanart/tests/test_immutable.py

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')