Skip to content

check_function() not working as documented (or what am I missing?) #394

Description

@gordonje

Hello!

Just recently stumbled across this project in conjunction with datacamp-light, and I'm really keen to incorporate into some online assignments for my students.

However, I'm having trouble using check_function() in my SCT. Can't even get the first example in under "Basic functionality" (in your docs) to work.

Here's my markup:

<div data-datacamp-exercise data-lang="python">
  <code data-type="sample-code">

    round(2.718282, ndigits = 3)

  </code>
  <code data-type="sct">
    Ex().check_function("round").multi(
      check_args("number").has_equal_value(),
      check_args("ndigits").has_equal_value()
    )
  </code>
</div>

The result when I hit "Run" looks correct. But when I hit "Submit, here's the error I get:

DataCamp encountered the following error:
Traceback (most recent call last):
  File "/var/lib/python/site-packages/protobackend/output.py", line 70, in wrapper
    output = f(*args, **kwargs)
  File "/var/lib/python/site-packages/pythonbackend/commands.py", line 63, in worker_dispatch
    return d.dispatch(cmd)
  File "/var/lib/python/site-packages/protobackend/dispatcher.py", line 28, in dispatch
    cmd_output = cmd(pre_payload)
  File "/var/lib/python/site-packages/pythonbackend/Exercise.py", line 123, in runSubmit
    self.dc_force_diagnose,
  File "/var/lib/python/site-packages/pythonwhat/test_exercise.py", line 67, in test_exercise
    raise e
  File "/var/lib/python/site-packages/pythonwhat/test_exercise.py", line 57, in test_exercise
    exec(sct, sct_cntxt)
  File "<string>", line 1, in <module>
  File "/var/lib/python/site-packages/protowhat/sct_syntax.py", line 258, in __call__
    ChainedCall(self.function, args, kwargs), previous=self.chain
  File "/var/lib/python/site-packages/protowhat/sct_syntax.py", line 225, in __init__
    self._state = chained_call(state)
  File "/var/lib/python/site-packages/protowhat/sct_syntax.py", line 113, in __call__
    return self.callable(state, *self.args, **self.kwargs)
  File "/var/lib/python/site-packages/protowhat/sct_syntax.py", line 78, in wrapper
    force=isinstance(error, InstructorError),
  File "/var/lib/python/site-packages/protowhat/failure.py", line 88, in _debug
    raise failure_type(state.get_feedback(FeedbackComponent(feedback)), state.state_history)
protowhat.failure.InstructorError: `check_function()` couldn't find a call of `round()` in the solution code. Make sure you get the mapping right!

Debug on error:
SCT function state history: `check_function`
Last test: `<Fail {'result': False, 'feedback': <FeedbackComponent {'append': True, 'message': "`check_function()` couldn't find a call of `round()` in the solution code. Make sure you get the mapping right!", 'kwargs': {}}>}>`

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions