Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
710eccb
Start to path simulator hooks
dwhswenson Jan 29, 2018
64639b7
Tests for attaching hooks (generic)
dwhswenson Jan 29, 2018
c34bc67
Hooks-based approach seems to work in Committor
dwhswenson Jan 29, 2018
789784b
Add hook state for after_step hook
dwhswenson Jan 30, 2018
c4803d4
Add after_step hook_state to tests
dwhswenson Jan 30, 2018
83cf746
fix problem with hook state for hooks test sim
dwhswenson Feb 1, 2018
3112541
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson May 5, 2018
fad83f6
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Sep 17, 2018
520abf2
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Apr 19, 2019
4a69542
move hooks to beta
dwhswenson Apr 19, 2019
c2597bb
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson May 1, 2019
7b0690b
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Mar 21, 2020
6d1e134
tests for StorageHook
dwhswenson Mar 22, 2020
a2611f1
tests for ShootFromSnapshotsOutputHook
dwhswenson Mar 22, 2020
40a7694
attempt to clean up for Py2
dwhswenson Mar 22, 2020
5dcd421
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Dec 24, 2020
1d66070
Add docs on hooks
dwhswenson Jan 20, 2021
45a774e
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Jan 20, 2021
89473af
Add some other coverage ignore options
dwhswenson Jan 20, 2021
a9df664
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Mar 28, 2021
22461c6
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Jun 4, 2021
be22dd1
Merge remote-tracking branch 'upstream/master' into committor_hooks
dwhswenson Jun 18, 2021
d59b306
before_sim gets kwargs; after_sim gets hook_state
dwhswenson Jun 18, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
tests for StorageHook
  • Loading branch information
dwhswenson committed Mar 22, 2020
commit 6d1e134ed667cdc38bc9d53c57a37f158b2191c9
17 changes: 9 additions & 8 deletions openpathsampling/beta/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@ class PathSimulatorHook(StorableNamedObject):
'after_simulation']

def before_simulation(self, sim):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if another hook implements more kwargs here it should not error out

Suggested change
def before_simulation(self, sim):
def before_simulation(self, sim, **kwargs):

pass
pass # pragma: no-cover

def before_step(self, sim, step_number, step_info, state):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def before_step(self, sim, step_number, step_info, state):
def before_step(self, sim, step_number, step_info, state, **kwargs):

pass
pass # pragma: no-cover

def after_step(self, sim, step_number, step_info, state, results,
hook_state):
Comment on lines +28 to +29

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def after_step(self, sim, step_number, step_info, state, results,
hook_state):
def after_step(self, sim, step_number, step_info, state, results,
hook_state, **kwargs):

pass
pass # pragma: no-cover

def after_simulation(self, sim):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def after_simulation(self, sim):
def after_simulation(self, sim, **kwargs):

pass
pass # pragma: no-cover


class StorageHook(PathSimulatorHook):
Expand Down Expand Up @@ -96,9 +96,10 @@ def before_step(self, sim, step_number, step_info, state):
)


class LiveVisualizerHook(PathSimulatorHook):
pass
# TODO: here are some other hooks to implement in the future
# class LiveVisualizerHook(PathSimulatorHook):
# pass


class PathSamplingOutputHook(PathSimulatorHook):
pass
# class PathSamplingOutputHook(PathSimulatorHook):
# pass
43 changes: 32 additions & 11 deletions openpathsampling/tests/pathsimulators/test_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
raises)
from nose.plugins.skip import Skip, SkipTest

import pytest
try:
from unittest.mock import MagicMock
except ImportError:
from mock import MagicMock

from ..test_helpers import (
true_func, assert_equal_array_array, make_1d_traj, data_filename,
assert_items_equal
Expand Down Expand Up @@ -141,21 +147,36 @@ def test_no_step_hook_simulation_hooks(self):
assert_equal(stupid.began_simulation, True)
assert_equal(stupider.foo, "foo")

class TestStorageHook(object):
def _delete_files(self):
pass

class TestStorageHook(object):
def setup(self):
pass

def test_before_simulation(self):
raise SkipTest

def test_after_step(self):
raise SkipTest
self.storage = MagicMock()
self.empty_hook = StorageHook()
self.hook = StorageHook(storage=self.storage,
frequency=10)
self.simulation = MagicMock(storage=self.storage,
save_frequency=10)

@pytest.mark.parametrize('hook', ['empty', 'std'])
def test_before_simulation(self, hook):
hook = {'empty': self.empty_hook,
'std': self.hook}[hook]
hook.before_simulation(self.simulation)
assert hook.storage == self.storage
assert hook.frequency == 10

@pytest.mark.parametrize('step_num', [0, 5, 10])
def test_after_step(self, step_num):
self.hook.after_step(self.simulation, step_num, ('step', 'info'),
('state'), "results", "hook_state")
self.storage.save.assert_called_once()
if step_num in [0, 10]:
self.storage.sync_all.assert_called_once()

def test_after_simulation(self):
raise SkipTest
self.hook.after_simulation(self.simulation)
self.storage.sync_all.assert_called_once()


class TestShootFromSnapshotsOutputHook(object):
def setup(self):
Expand Down