Browse Source

[Test] Some basic tests for JSON sanity

tags/1.3.2
Andrew Lewis 7 years ago
parent
commit
c1c49ce51d

+ 1
- 2
circle.yml View File

@@ -3,8 +3,7 @@ dependencies:
- sudo apt-get update -qq
- sudo apt-get install -qq cmake gcc lcov libevent-dev libglib2.0-dev libgmime-2.6-dev libluajit-5.1-dev liblua5.1-0-dev libmagic-dev libpcre3-dev libsqlite3-dev libssl-dev make python-dev ragel redis-server
- gem install coveralls-lcov
- sudo pip install psutil
- sudo pip install robotframework
- sudo pip install demjson psutil robotframework

test:
override:

+ 28
- 0
test/functional/cases/121_json.robot View File

@@ -0,0 +1,28 @@
*** Settings ***
Suite Setup Generic Setup
Suite Teardown Generic Teardown
Library ${TESTDIR}/lib/rspamd.py
Resource ${TESTDIR}/lib/rspamd.robot
Variables ${TESTDIR}/lib/vars.py

*** Variables ***
${CONFIG} ${TESTDIR}/configs/lua_test.conf
${LUA_SCRIPT} ${TESTDIR}/lua/preresult.lua
${MESSAGE} ${TESTDIR}/messages/spam_message.eml
${RSPAMD_SCOPE} Suite

*** Test Cases ***
Stat
@{result} = HTTP GET ${LOCAL_ADDR} ${PORT_CONTROLLER} /stat
Check JSON @{result}[1]

History
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} soft reject
@{result} = HTTP GET ${LOCAL_ADDR} ${PORT_CONTROLLER} /history
Check JSON @{result}[1]

Scan
${content} = Get File ${MESSAGE}
@{result} = HTTP POST ${LOCAL_ADDR} ${PORT_NORMAL} /check ${content}
Check JSON @{result}[1]

+ 20
- 0
test/functional/lib/rspamd.py View File

@@ -1,3 +1,4 @@
import demjson
import grp
import os
import os.path
@@ -17,6 +18,16 @@ try:
from urllib.request import urlopen
except:
from urllib2 import urlopen
try:
import http.client as httplib
except:
import httplib

def Check_JSON(j):
d = demjson.decode(j, strict=True)
assert len(d) > 0
assert 'error' not in d
return d

def cleanup_temporary_directory(directory):
shutil.rmtree(directory)
@@ -49,6 +60,15 @@ def get_rspamadm():
dname = get_top_dir()
return dname + "/src/rspamadm/rspamadm"

def HTTP(method, host, port, path, data=None, headers={}):
c = httplib.HTTPConnection("%s:%s" % (host, port))
c.request(method, path, data, headers)
r = c.getresponse()
t = r.read()
s = r.status
c.close()
return [s, t]

def make_temporary_directory():
return tempfile.mkdtemp()


+ 3
- 0
test/functional/lua/preresult.lua View File

@@ -0,0 +1,3 @@
rspamd_config:register_post_filter(function(task)
task:set_pre_result('soft reject', 'Pre Result Set')
end)

Loading…
Cancel
Save