Manual test plugin for parts of the update mechanism
This commit is contained in:
parent
6e793c2ba3
commit
61fbde4e51
1 changed files with 86 additions and 0 deletions
86
tests/manual_tests/always_update.py
Normal file
86
tests/manual_tests/always_update.py
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# coding=utf-8
|
||||
from __future__ import print_function
|
||||
|
||||
"""
|
||||
Place in ~/.octoprint/plugins & restart server to test:
|
||||
|
||||
* python_checker and python_updater mechanism
|
||||
* demotion of pip and python setup.py clean output that
|
||||
gets written to stderr but isn't as severe as that would
|
||||
look
|
||||
|
||||
Plugin will always demand to update itself, multiple
|
||||
consecutive runs are not a problem.
|
||||
"""
|
||||
|
||||
import time
|
||||
|
||||
NAME = "Always Update"
|
||||
OLD_VERSION = "1.0.0"
|
||||
NEW_VERSION = "2.0.0"
|
||||
|
||||
|
||||
class Foo(object):
|
||||
def get_latest(self, target, check, full_data=None):
|
||||
information = dict(local=dict(name=OLD_VERSION, value=OLD_VERSION),
|
||||
remote=dict(name=NEW_VERSION, value=NEW_VERSION))
|
||||
current = False
|
||||
return information, current
|
||||
|
||||
def can_perform_update(self, target, check):
|
||||
return True
|
||||
|
||||
def perform_update(self, target, check, target_version, log_cb=None):
|
||||
if not callable(log_cb):
|
||||
import sys
|
||||
def log_cb(lines, prefix=None, stream=None, strip=True):
|
||||
if stream == "stdout":
|
||||
f = sys.stdout
|
||||
elif stream == "stderr":
|
||||
f = sys.stderr
|
||||
else:
|
||||
f = None
|
||||
|
||||
for line in lines:
|
||||
print(line, file=f)
|
||||
|
||||
log_cb(["Updating Always Update..."])
|
||||
time.sleep(1)
|
||||
log_cb(["running clean",
|
||||
"recursively removing *.pyc from 'src'"],
|
||||
stream="stdout")
|
||||
log_cb(["'build/lib' does not exist -- can't clean it",
|
||||
"'build/bdist.win32' does not exist -- can't clean it",
|
||||
"'build/scripts-2.7' does not exist -- can't clean it"],
|
||||
stream="stderr")
|
||||
log_cb(["removing 'Development\OctoPrint\OctoPrint\src\octoprint_setuptools\__init__.pyc'"],
|
||||
stream="stdout")
|
||||
time.sleep(1)
|
||||
log_cb(["This should be red"],
|
||||
stream="stderr")
|
||||
log_cb(["You are using pip version 7.1.2, however version 9.0.1 is available.",
|
||||
"You should consider upgrading via the 'python -m pip install --upgrade pip' command."],
|
||||
stream="stderr")
|
||||
time.sleep(3)
|
||||
log_cb(["Done!"])
|
||||
|
||||
|
||||
def get_update_information():
|
||||
foo = Foo()
|
||||
return dict(
|
||||
always_update=dict(
|
||||
displayName=NAME,
|
||||
displayVersion=OLD_VERSION,
|
||||
|
||||
type="python_checker",
|
||||
python_checker=foo,
|
||||
|
||||
python_updater=foo
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
__plugin_name__ = NAME
|
||||
__plugin_hooks__ = {
|
||||
"octoprint.plugin.softwareupdate.check_config": get_update_information,
|
||||
}
|
||||
Loading…
Reference in a new issue