mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 14:01:15 +02:00
Watch for dynamips rom & nvram change
This monitor for change the file from dynamips by computing a hash of the watched file. The way dynamips work prevent the update of the modification time. We can improve that by using native system for watching file but: * it's require dependencies specific for each OS * dependencies use C extensions * this is only a backup if your router is cleanly shutdown we export stuff
This commit is contained in:
5 files changed
+97
-39
No files matched your search
@@ -15,6 +15,7 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import pytest
|
||||
import asyncio
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
@@ -22,11 +23,12 @@ from unittest.mock import MagicMock
|
||||
from gns3server.utils.file_watcher import FileWatcher
|
||||
|
||||
|
||||
def test_file_watcher(async_run, tmpdir):
|
||||
@pytest.mark.parametrize("strategy", ['mtime', 'hash'])
|
||||
def test_file_watcher(async_run, tmpdir, strategy):
|
||||
file = tmpdir / "test"
|
||||
file.write("a")
|
||||
callback = MagicMock()
|
||||
fw = FileWatcher(file, callback, delay=0.5)
|
||||
fw = FileWatcher(file, callback, delay=0.5, strategy=strategy)
|
||||
async_run(asyncio.sleep(1))
|
||||
assert not callback.called
|
||||
file.write("b")
|
||||
@@ -34,12 +36,29 @@ def test_file_watcher(async_run, tmpdir):
|
||||
callback.assert_called_with(str(file))
|
||||
|
||||
|
||||
def test_file_watcher_not_existing(async_run, tmpdir):
|
||||
@pytest.mark.parametrize("strategy", ['mtime', 'hash'])
|
||||
def test_file_watcher_not_existing(async_run, tmpdir, strategy):
|
||||
file = tmpdir / "test"
|
||||
callback = MagicMock()
|
||||
fw = FileWatcher(file, callback, delay=0.5)
|
||||
fw = FileWatcher(file, callback, delay=0.5, strategy=strategy)
|
||||
async_run(asyncio.sleep(1))
|
||||
assert not callback.called
|
||||
file.write("b")
|
||||
async_run(asyncio.sleep(1.5))
|
||||
callback.assert_called_with(str(file))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("strategy", ['mtime', 'hash'])
|
||||
def test_file_watcher_list(async_run, tmpdir, strategy):
|
||||
file = tmpdir / "test"
|
||||
file.write("a")
|
||||
|
||||
file2 = tmpdir / "test2"
|
||||
|
||||
callback = MagicMock()
|
||||
fw = FileWatcher([file, file2], callback, delay=0.5, strategy=strategy)
|
||||
async_run(asyncio.sleep(1))
|
||||
assert not callback.called
|
||||
file2.write("b")
|
||||
async_run(asyncio.sleep(1.5))
|
||||
callback.assert_called_with(str(file2))
|
||||
Reference in new issue
Block a user