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}"))
|
||||
def compare_session(quteproc, tmpdir, 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))
|
||||
|
||||
def compare_session(quteproc, expected):
|
||||
# Translate ... to ellipsis in YAML.
|
||||
loader = yaml.SafeLoader(expected)
|
||||
loader.add_constructor('!ellipsis', lambda loader, node: ...)
|
||||
loader.add_implicit_resolver('!ellipsis', re.compile(r'\.\.\.'), None)
|
||||
|
||||
data = yaml.load(session.read())
|
||||
data = quteproc.get_session()
|
||||
expected = loader.get_data()
|
||||
|
||||
assert utils.partial_compare(data, expected)
|
||||
|
@ -28,7 +28,9 @@ import time
|
||||
import os.path
|
||||
import datetime
|
||||
import logging
|
||||
import tempfile
|
||||
|
||||
import yaml
|
||||
import pytest
|
||||
from PyQt5.QtCore import pyqtSignal
|
||||
|
||||
@ -222,6 +224,16 @@ class QuteProc(testprocess.Process):
|
||||
message=message)
|
||||
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')
|
||||
def quteproc(qapp, httpbin):
|
||||
|
Loading…
Reference in New Issue
Block a user