def test_add_resource_exception_if_duplicate_lock_check(self): def func(): pss.RESOURCE_MAP[self.resource_name] = {} t = Thread(target=hold_lock, args=(_resource_lock, 0.1, func)) t.start() with self.assertRaises(ResourceAlreadyDefinedError): add_resource(self.resource_name, lambda: set(), 'http') t.join()
def test_add_resource_exception_if_duplicate_lock_check(self): # Intermittent failure in Python 2.7 if sys.version_info.major < 3: return def func(): pss.RESOURCE_MAP[self.resource_name] = {} t = Thread(target=hold_lock, args=(_resource_lock, 0.1, func)) t.start() with self.assertRaises(ResourceAlreadyDefinedError): add_resource(self.resource_name, lambda: set(), 'http') t.join()
def test_get_resources_returns_correct(self): expected = set(pss.RESOURCE_MAP.keys()).union({self.resource_name}) add_resource(self.resource_name, lambda: set(), 'http') actual = set(get_resources()) self.assertSetEqual(expected, actual)
def test_add_resource_none_resource_types(self): add_resource(self.resource_name, lambda: set(), None) self.assertIn(self.resource_name, pss.RESOURCE_MAP)
def test_add_resource_multiple_resource_types(self): add_resource(self.resource_name, lambda: set(), ['http', 'socks4']) self.assertIn(self.resource_name, pss.RESOURCE_MAP) self.assertIn(self.resource_name, pss.RESOURCE_TYPE_MAP['http']) self.assertIn(self.resource_name, pss.RESOURCE_TYPE_MAP['socks4'])
def test_add_resource_single_resource_type(self): add_resource(self.resource_name, lambda: set(), 'http') self.assertIn(self.resource_name, pss.RESOURCE_MAP) self.assertIn(self.resource_name, pss.RESOURCE_TYPE_MAP['http'])
def test_add_resource_exception_if_invalid_resource_type(self): with self.assertRaises(InvalidResourceTypeError): add_resource(self.resource_name, lambda: set(), 'invalid')
def test_add_resource_exception_if_duplicate(self): add_resource(self.resource_name, lambda: set(), 'http') with self.assertRaises(ResourceAlreadyDefinedError): add_resource(self.resource_name, lambda: set(), 'http')