diff options
| author | Ken Giusti <kgiusti@apache.org> | 2010-01-27 14:41:55 +0000 |
|---|---|---|
| committer | Ken Giusti <kgiusti@apache.org> | 2010-01-27 14:41:55 +0000 |
| commit | 5f443d000fcd4fbcdad3f75b124f01659c45a925 (patch) | |
| tree | 48768b61cda94e322166fd356e17a4df4ffdd2a1 /python/qmf2/tests/obj_gets.py | |
| parent | 31c9b760590d9fb56520e0a5e9196ec6267e84b2 (diff) | |
| download | qpid-python-5f443d000fcd4fbcdad3f75b124f01659c45a925.tar.gz | |
QPID-2261: add wait in tests for agent setup to complete
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@903660 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qmf2/tests/obj_gets.py')
| -rw-r--r-- | python/qmf2/tests/obj_gets.py | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/python/qmf2/tests/obj_gets.py b/python/qmf2/tests/obj_gets.py index 9287fc7173..f9be25409f 100644 --- a/python/qmf2/tests/obj_gets.py +++ b/python/qmf2/tests/obj_gets.py @@ -47,9 +47,10 @@ class _testNotifier(Notifier): class _agentApp(Thread): - def __init__(self, name, heartbeat): + def __init__(self, name, broker_url, heartbeat): Thread.__init__(self) self.notifier = _testNotifier() + self.broker_url = broker_url self.agent = Agent(name, _notifier=self.notifier, _heartbeat_interval=heartbeat) @@ -138,26 +139,17 @@ class _agentApp(Thread): _obj.set_value("key-2", 2) self.agent.add_object(_obj) + self.running = False + self.ready = Event() + + def start_app(self): self.running = True self.start() + self.ready.wait(10) + if not self.ready.is_set(): + raise Exception("Agent failed to connect to broker.") - def connect_agent(self, broker_url): - # broker_url = "user/passwd@hostname:port" - self.conn = qpid.messaging.Connection(broker_url.host, - broker_url.port, - broker_url.user, - broker_url.password) - self.conn.connect() - self.agent.set_connection(self.conn) - - def disconnect_agent(self, timeout): - if self.conn: - self.agent.remove_connection(timeout) - - def shutdown_agent(self, timeout): - self.agent.destroy(timeout) - - def stop(self): + def stop_app(self): self.running = False self.notifier.indication() # hmmm... collide with daemon??? self.join(10) @@ -165,6 +157,15 @@ class _agentApp(Thread): raise Exception("AGENT DID NOT TERMINATE AS EXPECTED!!!") def run(self): + # broker_url = "user/passwd@hostname:port" + self.conn = qpid.messaging.Connection(self.broker_url.host, + self.broker_url.port, + self.broker_url.user, + self.broker_url.password) + self.conn.connect() + self.agent.set_connection(self.conn) + self.ready.set() + while self.running: self.notifier.wait_for_work(None) wi = self.agent.get_next_workitem(timeout=0) @@ -173,6 +174,9 @@ class _agentApp(Thread): self.agent.release_workitem(wi) wi = self.agent.get_next_workitem(timeout=0) + if self.conn: + self.agent.remove_connection(10) + self.agent.destroy(10) class BaseTest(unittest.TestCase): @@ -186,15 +190,14 @@ class BaseTest(unittest.TestCase): def setUp(self): self.agents = [] for i in range(self.agent_count): - agent = _agentApp("agent-" + str(i), 1) - agent.connect_agent(self.broker) + agent = _agentApp("agent-" + str(i), self.broker, 1) + agent.start_app() self.agents.append(agent) def tearDown(self): for agent in self.agents: if agent is not None: - agent.shutdown_agent(10) - agent.stop() + agent.stop_app() def test_all_agents(self): |
