testmon_data.fail_reports might contain both failed and skipped:
(Pdb++) nodeid
'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output'
(Pdb++) pp self.testmon_data.fail_reports[nodeid]
[{'duration': 0.0020258426666259766,
'keywords': {'TestSchemaJSRenderer': 1, 'django-rest-framework': 1, 'test_schemajs_output': 1, 'tests/test_renderers.py': 1},
'location': ['tests/test_renderers.py', 742, 'TestSchemaJSRenderer.test_schemajs_output'],
'longrepr': None,
'nodeid': 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output',
'outcome': 'passed',
'sections': [],
'user_properties': [],
'when': 'setup'},
{'duration': 0.003198385238647461,
'keywords': {'TestSchemaJSRenderer': 1, 'django-rest-framework': 1, 'test_schemajs_output': 1, 'tests/test_renderers.py': 1},
'location': ['tests/test_renderers.py', 742, 'TestSchemaJSRenderer.test_schemajs_output'],
'longrepr': 'tests/test_renderers.py:753: in test_schemajs_output\n'
' output = renderer.render(\'data\', renderer_context={"request": request})\n'
'rest_framework/renderers.py:862: in render\n'
' codec = coreapi.codecs.CoreJSONCodec()\n'
"E AttributeError: 'NoneType' object has no attribute 'codecs'",
'nodeid': 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output',
'outcome': 'failed',
'sections': [],
'user_properties': [],
'when': 'call'},
{'duration': 0.008923768997192383,
'keywords': {'TestSchemaJSRenderer': 1, 'django-rest-framework': 1, 'test_schemajs_output': 1, 'tests/test_renderers.py': 1},
'location': ['tests/test_renderers.py', 742, 'TestSchemaJSRenderer.test_schemajs_output'],
'longrepr': None,
'nodeid': 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output',
'outcome': 'passed',
'sections': [],
'user_properties': [],
'when': 'teardown'},
{'duration': 0.0012934207916259766,
'keywords': {'TestSchemaJSRenderer': 1, 'django-rest-framework': 1, 'skipif': 1, 'test_schemajs_output': 1, 'tests/test_renderers.py': 1},
'location': ['tests/test_renderers.py', 743, 'TestSchemaJSRenderer.test_schemajs_output'],
'longrepr': ['tests/test_renderers.py', 743, 'Skipped: coreapi is not installed'],
'nodeid': 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output',
'outcome': 'skipped',
'sections': [],
'user_properties': [],
'when': 'setup'},
{'duration': 0.026836156845092773,
'keywords': {'TestSchemaJSRenderer': 1, 'django-rest-framework': 1, 'skipif': 1, 'test_schemajs_output': 1, 'tests/test_renderers.py': 1},
'location': ['tests/test_renderers.py', 743, 'TestSchemaJSRenderer.test_schemajs_output'],
'longrepr': None,
'nodeid': 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output',
'outcome': 'passed',
'sections': [],
'user_properties': [],
'when': 'teardown'}]
(Pdb++) pp [unserialize_report('testreport', report) for report in self.testmon_data.fail_reports[nodeid]]
[<TestReport 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output' when='setup' outcome='passed'>,
<TestReport 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output' when='call' outcome='failed'>,
<TestReport 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output' when='teardown' outcome='passed'>,
<TestReport 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output' when='setup' outcome='skipped'>,
<TestReport 'tests/test_renderers.py::TestSchemaJSRenderer::test_schemajs_output' when='teardown' outcome='passed'>]
I might have messed up some internals while debugging #101 / #102, but I think it should be ensured that this would never happen, e.g. on the DB level.