Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,506,803
Community Members
 
Community Events
180
Community Groups

Fatal Python error: Aborted

For my pipeline I have a single test file (test_xxxx.py) that contains many cases. Using the same command as I have configured in my bitbucket-pipelines.yml, I am able to run the tests on my local Ubuntu machine (22.04) yet when run on a BitBucket pipeline VM I see the following:

============================= test session starts ==============================

platform linux -- Python 3.7.16, pytest-7.2.1, pluggy-1.0.0 -- /usr/local/bin/python

cachedir: .pytest_cache

PyQt5 5.15.8 -- Qt runtime 5.15.2 -- Qt compiled 5.15.2

rootdir: /opt/atlassian/pipelines/agent/build, configfile: pytest.ini

plugins: qt-4.2.0, mock-3.10.0

collecting ... collected 9 items

Fatal Python error: Aborted

Current thread 0x00007f7192ad3740 (most recent call first):

File "/usr/local/lib/python3.7/site-packages/pytestqt/plugin.py", line 66 in qapp

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 908 in call_fixture_func

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 1129 in pytest_fixture_setup

File "/usr/local/lib/python3.7/site-packages/pluggy/_callers.py", line 39 in _multicall

File "/usr/local/lib/python3.7/site-packages/pluggy/_manager.py", line 80 in _hookexec

File "/usr/local/lib/python3.7/site-packages/pluggy/_hooks.py", line 265 in __call__

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 1075 in execute

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 677 in _compute_fixture_value

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 591 in _get_active_fixturedef

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 569 in getfixturevalue

File "/usr/local/lib/python3.7/site-packages/_pytest/fixtures.py", line 550 in _fillfixtures

File "/usr/local/lib/python3.7/site-packages/_pytest/python.py", line 1792 in setup

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 492 in setup

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 155 in pytest_runtest_setup

File "/usr/local/lib/python3.7/site-packages/pluggy/_callers.py", line 39 in _multicall

File "/usr/local/lib/python3.7/site-packages/pluggy/_manager.py", line 80 in _hookexec

File "/usr/local/lib/python3.7/site-packages/pluggy/_hooks.py", line 265 in __call__

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 260 in <lambda>

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 339 in from_call

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 260 in call_runtest_hook

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 220 in call_and_report

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 125 in runtestprotocol

File "/usr/local/lib/python3.7/site-packages/_pytest/runner.py", line 112 in pytest_runtest_protocol

File "/usr/local/lib/python3.7/site-packages/pluggy/_callers.py", line 39 in _multicall

File "/usr/local/lib/python3.7/site-packages/pluggy/_manager.py", line 80 in _hookexec

File "/usr/local/lib/python3.7/site-packages/pluggy/_hooks.py", line 265 in __call__

File "/usr/local/lib/python3.7/site-packages/_pytest/main.py", line 349 in pytest_runtestloop

File "/usr/local/lib/python3.7/site-packages/pluggy/_callers.py", line 39 in _multicall

File "/usr/local/lib/python3.7/site-packages/pluggy/_manager.py", line 80 in _hookexec

File "/usr/local/lib/python3.7/site-packages/pluggy/_hooks.py", line 265 in __call__

File "/usr/local/lib/python3.7/site-packages/_pytest/main.py", line 324 in _main

File "/usr/local/lib/python3.7/site-packages/_pytest/main.py", line 270 in wrap_session

File "/usr/local/lib/python3.7/site-packages/_pytest/main.py", line 317 in pytest_cmdline_main

File "/usr/local/lib/python3.7/site-packages/pluggy/_callers.py", line 39 in _multicall

File "/usr/local/lib/python3.7/site-packages/pluggy/_manager.py", line 80 in _hookexec

File "/usr/local/lib/python3.7/site-packages/pluggy/_hooks.py", line 265 in __call__

File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 168 in main

File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 190 in console_main

File "/usr/local/lib/python3.7/site-packages/pytest/__main__.py", line 5 in <module>

File "/usr/local/lib/python3.7/runpy.py", line 85 in _run_code

File "/usr/local/lib/python3.7/runpy.py", line 193 in _run_module_as_main

2023-02-08T01:37:52.423888867Z stdout P tests/test_qfprobe.py::test_successStates

I assume this means there is something different about the BitBucket pipeline VM environment. Can someone suggest what might be different that could cause this problem?

I have specifically checked I am matching the versions (as seen at the start of the above trace).

From a web search I came across the following which is similar but on older versions, but I'm unsure how to apply within my BitBucket env. https://stackoverflow.com/questions/64959516/why-a-fatal-python-error-when-testing-using-pytest-qt

Any thoughts welcome .. thank you

 

2 answers

1 accepted

0 votes
Answer accepted

RESOLVED: The issue was due to the lack of a display in the BitBucket CI pipeline. I solved by using xvfb thus:

script:
- apt-get update
- apt-get install software-properties-common -y
- add-apt-repository ppa:deadsnakes/ppa
- apt install python3.7 -y
- apt install python3-pip -y
- if [ -f requirements.txt ]; then pip3 install -r requirements.txt; fi
- apt-get install xvfb -y
- apt-get install x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps -y
- export DISPLAY=:0;/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_0.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :0 -screen 0 1920x1200x24 -ac +extension GLX +render -noreset
- apt-get install python3-pyqt5 -y
- cd myproj;python3 -m pytest -v tests/*.py;cd ..

This maybe a doh! moment.

This test that is failing is a UI test of a PyQt5-based UI desktop application. In the BitBucket pipeline there is no display. So what I'm looking for is an example PyQt5 project with pytest-qt UI tests and what the associated bitbucket-pipelines.yml might look like to run the tests.

I have tried tinkering with xvfb with no success yet, hence reaching out to the community for those that have had success and might offer guidance.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
TAGS
AUG Leaders

Atlassian Community Events