bdd tests: Add QuteProc.get_session().
This commit is contained in:
parent
d992390cbe
commit
17396e1030
@ -86,18 +86,12 @@ def expect_error(quteproc, httpbin, category, message):
|
|||||||
|
|
||||||
|
|
||||||
@bdd.then(bdd.parsers.parse("The session should look like:\n{expected}"))
|
@bdd.then(bdd.parsers.parse("The session should look like:\n{expected}"))
|
||||||
def compare_session(quteproc, tmpdir, expected):
|
def compare_session(quteproc, expected):
|
||||||
session = tmpdir / 'session.yml'
|
|
||||||
quteproc.send_cmd(':session-save "{}"'.format(session))
|
|
||||||
quteproc.wait_for(category='message', loglevel=logging.INFO,
|
|
||||||
message='Saved session {}.'.format(session))
|
|
||||||
|
|
||||||
# Translate ... to ellipsis in YAML.
|
# Translate ... to ellipsis in YAML.
|
||||||
loader = yaml.SafeLoader(expected)
|
loader = yaml.SafeLoader(expected)
|
||||||
loader.add_constructor('!ellipsis', lambda loader, node: ...)
|
loader.add_constructor('!ellipsis', lambda loader, node: ...)
|
||||||
loader.add_implicit_resolver('!ellipsis', re.compile(r'\.\.\.'), None)
|
loader.add_implicit_resolver('!ellipsis', re.compile(r'\.\.\.'), None)
|
||||||
|
|
||||||
data = yaml.load(session.read())
|
data = quteproc.get_session()
|
||||||
expected = loader.get_data()
|
expected = loader.get_data()
|
||||||
|
|
||||||
assert utils.partial_compare(data, expected)
|
assert utils.partial_compare(data, expected)
|
||||||
|
@ -28,7 +28,9 @@ import time
|
|||||||
import os.path
|
import os.path
|
||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
import yaml
|
||||||
import pytest
|
import pytest
|
||||||
from PyQt5.QtCore import pyqtSignal
|
from PyQt5.QtCore import pyqtSignal
|
||||||
|
|
||||||
@ -222,6 +224,16 @@ class QuteProc(testprocess.Process):
|
|||||||
message=message)
|
message=message)
|
||||||
line.expected = True
|
line.expected = True
|
||||||
|
|
||||||
|
def get_session(self):
|
||||||
|
"""Save the session and get the parsed session data."""
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
session = os.path.join(tmpdir, 'session.yml')
|
||||||
|
self.send_cmd(':session-save "{}"'.format(session))
|
||||||
|
self.wait_for(category='message', loglevel=logging.INFO,
|
||||||
|
message='Saved session {}.'.format(session))
|
||||||
|
with open(session, encoding='utf-8') as f:
|
||||||
|
return yaml.load(f)
|
||||||
|
|
||||||
|
|
||||||
@pytest.yield_fixture(scope='module')
|
@pytest.yield_fixture(scope='module')
|
||||||
def quteproc(qapp, httpbin):
|
def quteproc(qapp, httpbin):
|
||||||
|
Loading…
Reference in New Issue
Block a user