import unittest import random from unitpy.GeneralTests import GeneralTests from typing import List from pickle import TRUE from unitpy.After import After, getAfter class Clazz1: ''' Bugged, it always returns the same hashcode. ''' def __init__(self, v:str): self.value = v def __repr__(self): return str(self.value) + " " + str(random.randint(1,100)) def __hash__(self): return hash(self.value) def __eq__(self, other): return isinstance(other, self.__class__) and \ self.value == other.value class Clazz2(Clazz1): @After() def closeit(self): return "ok" class AfterTest(unittest.TestCase): def test1(self): self.assertEqual(None, getAfter(Clazz1)) def test2(self): self.assertEqual(Clazz2.closeit, getAfter(Clazz2))