class TestSessionFactory(unittest.TestCase): def setUp(self): self.factory = SessionFactory(None) potocol = Protocol() self.session = self.factory.create(potocol) def tearDown(self): pass def test_create_session(self): self.assertIsNotNone(self.session) self.assertIsNotNone(self.session.id) def test_register_session(self): self.factory.register(self.session) session = self.factory.find(self.session.id) self.assertIsNotNone(session) self.assertEqual(session, self.session) def test_unregister_session(self): self.factory.register(self.session) sessions = self.factory.find() self.assertEqual(len(sessions), 1) oldsession = self.factory.unregister(self.session) sessions = self.factory.find() self.assertEqual(len(sessions), 0) self.assertEqual(self.session, oldsession) def test_find_sessions(self): self.factory.register(self.session) session = self.factory.find(self.session.id) session1 = self.factory.find() self.assertEqual(self.session, session) self.assertEqual(session1[session.id], session) self.assertIsInstance(session1, dict)
def setUp(self): self.factory = SessionFactory(None) potocol = Protocol() self.session = self.factory.create(potocol)
class TestSession(unittest.TestCase): def setUp(self): self.factory = SessionFactory(None) self.potocol = Protocol() self.session = self.factory.create(self.potocol) def test_add_attr_to_session(self): name = r(10) self.session.set_attr("name", name) self.assertEqual(self.session.get_attr("name"), name) data = {"name": name, "lang": "python"} self.session.set_attr(data) self.assertEqual(self.session.get_attr("name"), data["name"]) self.assertEqual(self.session.get_attr("lang"), data["lang"]) def test_add_attr_to_session_with_default_value(self): name = r(10) self.assertEqual(self.session.get_attr("name", name), name) name1 = r(10) self.session.set_attr("name", name1) self.assertEqual(self.session.get_attr("name"), name1) def test_get_attr_twice(self): foo = r(10) foolist = self.session.get_attr("foolist", {}) foolist["foo"] = foo foolist = self.session.get_attr("foolist", {}) self.assertTrue(len(foolist) > 0) def test_get_attr_from_session(self): lang = "python" name = r(10) self.session.set_attr("name", name) self.session.set_attr("lang", lang) data = self.session.get_attr() self.assertIsInstance(data, dict) self.assertEqual(self.session.get_attr("name"), name) self.assertEqual(self.session.get_attr("lang"), lang) def test_iterate_response_and_target_no_sendto(self): target_session_list = [self.session] for i in range(5): target_session_list.append(self.factory.create(self.potocol)) response = r(10) num = 0 _ids = [s.id for s in target_session_list] for (session, data) in self.session.iterate_response_data(response): self.assertIn(session.id, _ids) self.assertEqual(data, response) num += 1 self.assertEqual(num, len(target_session_list)) def test_iterate_response_and_target_with(self): target_session_list = [self.session] for i in range(5): target_session_list.append(self.factory.create(self.potocol)) response = r(10) self.session.sendto = [s.id for s in target_session_list][1:] num = 0 _ids = [s.id for s in target_session_list] for (session, data) in self.session.iterate_response_data(response): self.assertIn(session.id, _ids) self.assertEqual(data, response) num += 1 self.assertEqual(num, len(target_session_list) - 1) def test_response_data_with_type_of_object(self): class Test: def __init__(self, name): self.name = name name1 = r(10) t1 = Test(name1) parsed_data = self.session.parse_response(t1) self.assertEqual(parsed_data, "{\"name\": \"" + name1 + "\"}") def test_response_data_with_type_of_list(self): class Test: def __init__(self, name): self.name = name name1 = r(10) t1 = Test(name1) name2 = r(10) t2 = Test(name2) parsed_data = self.session.parse_response([t1, t2]) c = "[{\"name\": \"" + name1 + "\"}, {\"name\": \"" + name2 + "\"}]" self.assertEqual(parsed_data, c) def test_response_data_with_mutli_type(self): class Test: def __init__(self, name): self.name = name name1 = r(10) t1 = Test(name1) name2 = r(10) t2 = Test(name2) res = {"func": "addUser", "users": [t1, t2]} parsed_data = self.session.parse_response(res) c = "\"users\": [{\"name\": \""+name1+"\"}, {\"name\": \""+name2+"\"}]" c1 = "\"func\": \"addUser\"" self.assertTrue(c in parsed_data) self.assertTrue(c1 in parsed_data) def test_request_data_with_specified_cmd(self): cmd1 = r(5) d1 = r(10) data1 = "{'cmd': '"+cmd1+"', 'data':'"+d1+"'}" data = self.session.handle_request_data(data1) self.assertTrue(type(data) == dict) self.assertEqual(data["cmd"], cmd1) self.assertEqual(data["data"], d1) cmd2 = r(5) d2 = r(10) data2 = "{\"cmd\": \""+cmd2+"\", \"data\":\""+d2+"\"}" data = self.session.handle_request_data(data2) self.assertTrue(type(data) == dict) self.assertEqual(data["cmd"], cmd2) self.assertEqual(data["data"], d2) def test_request_data_with_no_cmd(self): d1 = r(10) data1 = d1 data = self.session.handle_request_data(data1) self.assertTrue(type(data) == dict) self.assertEqual(data["cmd"], "default") self.assertEqual(data["data"], d1) d2 = r(10) data2 = "{'data':'"+d2+"'}" data = self.session.handle_request_data(data2) self.assertTrue(type(data) == dict) self.assertEqual(data["cmd"], "default") self.assertEqual(data["data"], d2) def test_request_data_with_no_data(self): d = None data = self.session.handle_request_data(d) self.assertTrue(type(data) == dict) self.assertEqual(data["cmd"], "default")