Skip to content

TypeError: expected str, bytes or os.PathLike object, not int on self._mongod.start() #98

Open
@stevenmz

Description

@stevenmz

Describe the bug
subprocess fails to load mongod on os x

To Reproduce
Steps to reproduce the behavior:

import pytest
from pymongo_inmemory import MongoClient

if not os.path.exists("mongo_dl_cache/download") or not os.path.exists("mongo_dl_cache/extract"):
    os.makedirs("mongo_dl_cache/download")
    os.makedirs("mongo_dl_cache/extract")
    os.makedirs("mongo_dl_cache/data")

os.environ["PYMONGOIM__DOWNLOAD_FOLDER"]="mongo_dl_cache/download"
os.environ["PYMONGOIM__MONGOD_PORT"]= "27017"
os.environ["PYMONGOIM__EXTRACT_FOLDER"]="mongo_dl_cache/extract"
os.environ["PYMONGOIM__MONGOD_DATA_FOLDER"]="mongo_dl_cache/data"
os.environ["PYMONGOIM__DOWNLOAD_URL"]="https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-6.0.12.tgz"

client = MongoClient()

Expected behavior
MongoClient should connect.

Logs
If applicable, add any kind of collected logs to help us understand the problem.

../../opt/anaconda3/envs/py311/lib/python3.11/site-packages/pymongo_inmemory/_pim.py:15: in init
self._mongod.start()
../../opt/anaconda3/envs/py311/lib/python3.11/site-packages/pymongo_inmemory/mongod.py:142: in start
self._proc = subprocess.Popen(boot_command)
../../opt/anaconda3/envs/py311/lib/python3.11/subprocess.py:1026: in init
self._execute_child(args, executable, preexec_fn, close_fds,
self = <Popen: returncode: None args: ['mongo_dl_cache/extract/c42eeac2efb615d0fe85...>

args = ['mongo_dl_cache/extract/c42eeac2efb615d0fe8562483f94326dcfeeb5a97cdeb3b4263c92a8ff27d04e/mongodb-macos-x86_64-6.0.12/bin/mongod', '--dbpath', 'mongo_dl_cache/data', '--logpath', 'mongo_dl_cache/data/mongod.log', '--port', ...]
executable = b'mongo_dl_cache/extract/c42eeac2efb615d0fe8562483f94326dcfeeb5a97cdeb3b4263c92a8ff27d04e/mongodb-macos-x86_64-6.0.12/bin/mongod'
preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None, startupinfo = None, creationflags = 0
shell = False, p2cread = -1, p2cwrite = -1, c2pread = -1, c2pwrite = -1, errread = -1, errwrite = -1
restore_signals = True, gid = None, gids

= None, uid = None, umask = -1, start_new_session = False, process_group = -1

Offending line: self.pid = _fork_exec(
args, executable_list,
close_fds, tuple(sorted(map(int, fds_to_keep))),
cwd, env_list,
p2cread, p2cwrite, c2pread, c2pwrite,
errread, errwrite,
errpipe_read, errpipe_write,
restore_signals, start_new_session,
process_group, gid, gids, uid, umask,
preexec_fn, _USE_VFORK)
E TypeError: expected str, bytes or os.PathLike object, not int

Context:

  • OS: OS X Ventura 13.5.1 Intel based
  • Version of pymongo_inmemory 0.4.0
  • Version of mongo you are downloading [e.g. 4.0] I have tried 6.0.12 and the latest 7.0.4

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinghigh priorityIt should be fixed urgently

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions