diff --git a/lib/py_unit_adapter.rb b/lib/py_unit_adapter.rb index 88f43758..8b3b2093 100644 --- a/lib/py_unit_adapter.rb +++ b/lib/py_unit_adapter.rb @@ -11,6 +11,7 @@ class PyUnitAdapter < TestingFrameworkAdapter end def parse_output(output) + # PyUnit is expected to print test results on Stderr! count = COUNT_REGEXP.match(output[:stderr]).captures.first.to_i failures_matches = FAILURES_REGEXP.match(output[:stderr]) failed = failures_matches ? failures_matches.captures.try(:first).to_i : 0 diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index feb41a18..bddf75af 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Runner::Strategy::DockerContainerPool < Runner::Strategy - attr_reader :container_id, :command, :execution_environment + attr_reader :container_id, :command def self.config # Since the docker configuration file contains code that must be executed, we use ERB templating. @@ -128,9 +128,14 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy # TODO: Can we use the actual exit code here? @exit_code = 0 close(:terminated_by_codeocean) - when /#{format(@strategy.execution_environment.test_command, class_name: '.*', filename: '.*', module_name: '.*')}/ - # TODO: Super dirty hack to redirect test output to stderr (remove attr_reader afterwards) + when /python3.*-m\s*unittest/ + # TODO: Super dirty hack to redirect test output to stderr + # This is only required for Python and the unittest module but must not be used with PyLint @stream = 'stderr' + when /\*\*\*\*\*\*\*\*\*\*\*\*\* Module/ + # Identification of PyLint output, change stream back to stdout and return event + @stream = 'stdout' + {'type' => @stream, 'data' => raw_event.data} when /#{@strategy.command}/ when /bash: cmd:canvasevent: command not found/ else