diff options
author | Prabhu Ramachandran | 2011-12-24 05:46:36 -0800 |
---|---|---|
committer | Prabhu Ramachandran | 2011-12-24 05:46:36 -0800 |
commit | 95e9ea0f60b21595fa0f6ffea12da13b33821018 (patch) | |
tree | 8114286da06869c7059d6dbb2322641f15202408 /testapp/test_server.py | |
parent | 7104f495d01fb934af11c8dfd09da087174c1b12 (diff) | |
parent | 7b819758d4d60822c19611845a44f8c5301a391c (diff) | |
download | online_test-95e9ea0f60b21595fa0f6ffea12da13b33821018.tar.gz online_test-95e9ea0f60b21595fa0f6ffea12da13b33821018.tar.bz2 online_test-95e9ea0f60b21595fa0f6ffea12da13b33821018.zip |
Merge pull request #2 from parth115/master
Changed to Buildout
Diffstat (limited to 'testapp/test_server.py')
-rw-r--r-- | testapp/test_server.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/testapp/test_server.py b/testapp/test_server.py new file mode 100644 index 0000000..be9f876 --- /dev/null +++ b/testapp/test_server.py @@ -0,0 +1,83 @@ +"""Simple test suite for the code server. Running this requires that one start +up the code server as:: + + $ sudo ./code_server.py + +""" +from exam.xmlrpc_clients import code_server + +def check_result(result, check='correct answer'): + if check != 'correct answer': + assert result[0] == False + else: + assert result[0] == True + if "unable to connect" in result[1].lower(): + assert result[0], result[1] + assert check in result[1].lower(), result[1] + +def test_python(): + """Test if server runs Python code as expected.""" + src = 'while True: pass' + result = code_server.run_code(src, '', '/tmp', language="python") + check_result(result, 'more than ') + + src = 'x = 1' + result = code_server.run_code(src, 'assert x == 1', '/tmp', + language="python") + check_result(result, 'correct answer') + + result = code_server.run_code(src, 'assert x == 0', '/tmp', + language="python") + check_result(result, 'assertionerror') + + src = 'abracadabra' + result = code_server.run_code(src, 'assert x == 0', '/tmp', + language="python") + check_result(result, 'nameerror') + +def test_bash(): + """Test if server runs Bash code as expected.""" + src = """ +#!/bin/bash + [[ $# -eq 2 ]] && echo $(( $1 + $2 )) && exit $(( $1 + $2 )) + """ + result = code_server.run_code(src, + 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash") + check_result(result) + + src = """ +#!/bin/bash + [[ $# -eq 2 ]] && echo $(( $1 - $2 )) && exit $(( $1 - $2 )) + """ + result = code_server.run_code(src, + 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash") + check_result(result, 'error') + + src = """\ +#!/bin/bash + while [ 1 ] ; do echo "" > /dev/null ; done + """ + result = code_server.run_code(src, + 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash") + check_result(result, 'more than ') + + src = ''' +#!/bin/bash + while [ 1 ] ; do echo "" > /dev/null + ''' + result = code_server.run_code(src, + 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash") + check_result(result, 'error') + + src = '''# Enter your code here. +#!/bin/bash + while [ 1 ] ; do echo "" > /dev/null + ''' + result = code_server.run_code(src, + 'docs/sample.sh\ndocs/sample.args', '/tmp', language="bash") + check_result(result, 'oserror') + +if __name__ == '__main__': + test_python() + test_bash() + |