-
Notifications
You must be signed in to change notification settings - Fork 50
Open
0 / 10 of 1 issue completedLabels
Description
What action do you want to perform
Hi, we are wanting to use the postgresql_proc fixture in our test suite and we ran into a few errors. Version 2.4.0 on Windows 10 and PostgreSQL version 11.
What are the results
On the creation of PostgreSQLExecutor we find it errors when calling pg_ctl due to the quotes around stderr on this line , seems Windows is not happy. By removing the quotes it managed to set up the database and run the test suite.
However it now runs into the problem of not being able to stop with os.killpg
, as this function doesn't exist for Windows.
@pytest.fixture(scope='session')
def postgresql_proc_fixture(request, tmpdir_factory):
"""
Process fixture for PostgreSQL.
:param FixtureRequest request: fixture request object
:rtype: pytest_dbfixtures.executors.TCPExecutor
:returns: tcp executor
"""
.
.
.
# start server
with postgresql_executor:
postgresql_executor.wait_for_postgres()
> yield postgresql_executor
..\..\appdata\local\pypoetry\cache\virtualenvs\trase-iwsqw52c-py3.7\lib\site-packages\pytest_postgresql\factories.py:200:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
..\..\appdata\local\pypoetry\cache\virtualenvs\trase-iwsqw52c-py3.7\lib\site-packages\mirakuru\base.py:179: in __exit__
self.stop()
..\..\appdata\local\pypoetry\cache\virtualenvs\trase-iwsqw52c-py3.7\lib\site-packages\pytest_postgresql\executor.py:220: in stop
super().stop(sig, exp_sig)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pytest_postgresql.executor.PostgreSQLExecutor: "C:/PROGRA~..." 0x194068a34a8>, sig = <Signals.SIGTERM: 15>, exp_sig = None
def stop(
self: SimpleExecutorType,
sig: int = None,
exp_sig: int = None
) -> SimpleExecutorType:
.
.
.
try:
> os.killpg(self.process.pid, sig)
E AttributeError: module 'os' has no attribute 'killpg'
What are the expected results
We were wondering if others have run into this issue too and if there's a way to get this fix in. Any help is appreciated as its a great plugin to use!