From Fedora Project Wiki

No edit summary
(updated to match current abrt)
(12 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{QA/Test_Case
{{QA/Test_Case
|description=Check that the ''abrt'' handles Python exceptions.
|description=This test case tests the functionality of the ABRT Python exception handler.
|actions=
|actions=
# First, confirm in {{filename|/etc/abrt/plugins/Python.conf}} that the '''Python''' addon is enabled. The conf file should contain this line: <pre>Enabled = Yes</pre>
# Ensure the package is installed: {{command|su -c 'yum install abrt-addon-python'}}
# Next, ensure that {{filename|/etc/abrt/abrt.conf}} has at least one reporter defined for the '''Python''' addon.  For example, <pre>Python = Logger, Mailx</pre>
# Find a python {{filename|.py}} file which is part of an official Fedora package. For example, {{filename|/usr/bin/pydoc}} which is provided by the {{package|python}} package. Other files you might use for experiments: /usr/bin/pygtk-demo, /usr/bin/yum, /usr/bin/fetch_file
# Restart service <pre>service abrtd restart</pre>
# Make a back-up of the file: {{command|su -c 'cp -a /usr/bin/pydoc /usr/bin/pydoc.save'}}
# Find a python {{filename|.py}} file in system originally installed via RPM. For this test, we will choose {{filename|/usr/share/doc/smolt-1.?/lite2my.py}} which is provided by the {{package|smolt}} package. First, save a back-up of the file: <pre>cp /usr/share/doc/smolt-1.?/lite2my.py /tmp/</pre>
# Edit the file to contain some invalid Python code.  Add "0/0" (without quotes) line near the top (after the line which begins with ''#'').
# Now, edit the file {{filename|/usr/share/doc/smolt-1.?/lite2my.py}} to contain some invalid Python code.  For example,
# Execute the modified file.
#: <pre>#!/usr/bin/python
# Revert the modified python file: {{command|su -c 'cp -a /usr/bin/pydoc.save /usr/bin/pydoc'}}
#: "11" + 11</pre>
# Next, execute the modified file using python. For example, in terminal type: <pre>python /usr/share/doc/smolt-1.?/lite2my.py</pre>
# Revert the modified python file <pre>cp /tmp/lite2my.py /usr/share/doc/smolt-1.?/lite2my.py</pre>
|results=
|results=
# Python traceback should be generated
# A python traceback should be generated at the command line:
# ABRT catches it, check the report via ''abrt-gui'' whether the trace in report window is the same as in terminal
#:Traceback (most recent call last):
# The python is run with every python script, so any bug in the hook may have bad consequences for all python app. So please pay attention to any weird behaviour of python scripts
#:  File "/usr/bin/pydoc", line 3, in <module>
after abrt's pyhook is installed.
#:    0/0
# ABRT should catch the traceback, and if you inspect the report via {{command|gnome-abrt}}, the trace in report window should be the same as in the terminal where you executed the command
# The ABRT plugin should not cause any unintended behaviour in python scripts when installed
}}
}}
[[Category:ABRT_Test_Cases]]
[[Category:Package_abrt_test_cases]]

Revision as of 12:22, 3 May 2013

Description

This test case tests the functionality of the ABRT Python exception handler.


How to test

  1. Ensure the package is installed: su -c 'yum install abrt-addon-python'
  2. Find a python .py file which is part of an official Fedora package. For example, /usr/bin/pydoc which is provided by the Package-x-generic-16.pngpython package. Other files you might use for experiments: /usr/bin/pygtk-demo, /usr/bin/yum, /usr/bin/fetch_file
  3. Make a back-up of the file: su -c 'cp -a /usr/bin/pydoc /usr/bin/pydoc.save'
  4. Edit the file to contain some invalid Python code. Add "0/0" (without quotes) line near the top (after the line which begins with #).
  5. Execute the modified file.
  6. Revert the modified python file: su -c 'cp -a /usr/bin/pydoc.save /usr/bin/pydoc'

Expected Results

  1. A python traceback should be generated at the command line:
    Traceback (most recent call last):
    File "/usr/bin/pydoc", line 3, in <module>
    0/0
  2. ABRT should catch the traceback, and if you inspect the report via gnome-abrt, the trace in report window should be the same as in the terminal where you executed the command
  3. The ABRT plugin should not cause any unintended behaviour in python scripts when installed