def directory_discovery(): # Agent hosting the directory agt_dir = Agent('agt_dir', InProcessCommunicationLayer()) directory = Directory(agt_dir.discovery) agt_dir.add_computation(directory.directory_computation) agt_dir.discovery.use_directory('agt_dir', agt_dir.address) agt_dir.start() agt_dir.run(directory.directory_computation.name) # standard agents agt1 = Agent('agt1', InProcessCommunicationLayer()) agt1.discovery.use_directory('agt_dir', agt_dir.address) agt1.start() agt2 = Agent('agt2', InProcessCommunicationLayer()) agt2.discovery.use_directory('agt_dir', agt_dir.address) agt2.start() yield agt_dir, agt1, agt2 for c in agt1.computations(): agt1.remove_computation(c.name) for c in agt1.discovery.agent_computations(agt1.name): agt1.discovery.unregister_computation(c) for c in agt2.computations(): agt2.remove_computation(c.name) for c in agt2.discovery.agent_computations(agt2.name): agt2.discovery.unregister_computation(c) wait_run() agt1.stop() agt2.stop() agt_dir.stop()
def test_create(): comm = InProcessCommunicationLayer() agent = Agent('agt1', comm) assert agent.name == 'agt1' assert not agent.computations() assert not agent.is_running assert agent.communication == comm assert agent.address == comm.address