Skip to content

Commit

Permalink
Merge pull request #147 from Geson-anko/BaseApp/Awake
Browse files Browse the repository at this point in the history
Base app/awake
  • Loading branch information
Geson-anko committed May 22, 2022
2 parents f8e57bb + bba4734 commit 87c6803
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 3 deletions.
6 changes: 6 additions & 0 deletions JarvisEngine/apps/base_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ class BaseApp(object):
Override methods
- Init()
called at end of `__init__`
- Awake()
Called at the begin of process/thread.
"""


Expand Down Expand Up @@ -364,6 +366,8 @@ def _launch(self, process_shared_values:FolderDict_withLock) -> None:
Launch all applications as other threads or processes.
"""
self.logger.info("launch")
self.Awake()

self.process_shared_values = process_shared_values
self.prepare_for_launching_thread_apps()
self.launch_child_apps()
Expand All @@ -380,3 +384,5 @@ def launch(self, process_shared_values:FolderDict_withLock) -> None:
self.logger.exception(e)


def Awake(self) -> None:
"""Called at begin of process/thread."""
6 changes: 6 additions & 0 deletions TestEngineProject/App0/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ def RegisterProcessSharedValues(self, sync_manager) -> None:
def RegisterThreadSharedValues(self) -> None:
super().RegisterThreadSharedValues()
self.addThreadSharedValue("set_obj", {"number"})

def Awake(self) -> None:
self.logger.info("Awake")
assert self.process_shared_values == None


6 changes: 5 additions & 1 deletion TestEngineProject/App1/App1_1/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,8 @@ def RegisterProcessSharedValues(self, sync_manager) -> None:

def RegisterThreadSharedValues(self) -> None:
super().RegisterThreadSharedValues()
self.addThreadSharedValue("tuple_obj",(True,False))
self.addThreadSharedValue("tuple_obj",(True,False))

def Awake(self) -> None:
self.logger.info("Awake")
assert self.process_shared_values == None
6 changes: 5 additions & 1 deletion TestEngineProject/App1/App1_2/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,8 @@ def RegisterProcessSharedValues(self, sync_manager) -> None:

def RegisterThreadSharedValues(self) -> None:
super().RegisterThreadSharedValues()
self.addThreadSharedValue("list_obj", [1,2,3])
self.addThreadSharedValue("list_obj", [1,2,3])

def Awake(self) -> None:
self.logger.info("Awake")
assert self.process_shared_values == None
6 changes: 5 additions & 1 deletion TestEngineProject/App1/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,8 @@ def RegisterProcessSharedValues(self, sync_manager) -> None:

def RegisterThreadSharedValues(self) -> None:
super().RegisterThreadSharedValues()
self.addThreadSharedValue("range_obj",range(10))
self.addThreadSharedValue("range_obj",range(10))

def Awake(self) -> None:
self.logger.info("Awake")
assert self.process_shared_values == None
7 changes: 7 additions & 0 deletions tests/apps/test_base_app_launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,18 @@ def test_launch(caplog):
time.sleep(0.1)
rec_tup = caplog.record_tuples

# launch
assert ("MAIN", INFO, "launch") in rec_tup
assert ("MAIN.App0", INFO, "launch") in rec_tup
assert ("MAIN.App1", INFO, "launch") in rec_tup
assert ("MAIN.App1.App1_1", INFO, "launch") in rec_tup
assert ("MAIN.App1.App1_2", INFO, "launch") in rec_tup

# Awake
assert ("MAIN.App0", INFO, "Awake") in rec_tup
assert ("MAIN.App1", INFO, "Awake") in rec_tup
assert ("MAIN.App1.App1_1", INFO, "Awake") in rec_tup
assert ("MAIN.App1.App1_2", INFO, "Awake") in rec_tup

for record in caplog.records:
assert record.levelno < WARNING, record.message

0 comments on commit 87c6803

Please sign in to comment.