add: init unit test

This commit is contained in:
Tobias Reisinger 2019-10-27 02:07:01 +02:00
parent 636fdf8df1
commit 320201bb5b
5 changed files with 40 additions and 63 deletions

View file

@ -6,58 +6,7 @@
"https": false "https": false
} }
], ],
"app": { "custom_config": {
"threads_num": 1, "db_name": "core.sqlite"
"enable_session": false, }
"session_timeout": 0,
"document_root": "./static/",
"home_page": "index.html",
"upload_path": "uploads",
"file_types": [
"gif",
"png",
"jpg",
"js",
"css",
"html",
"ico",
"swf",
"xap",
"apk",
"cur",
"xml"
],
"max_connections": 100000,
"max_connections_per_ip": 0,
"load_dynamic_views": false,
"dynamic_views_path": [
"./views"
],
"log": {
"logfile_base_name": "",
"log_size_limit": 100000000,
"log_level": "DEBUG"
},
"run_as_daemon": false,
"relaunch_on_error": false,
"use_sendfile": true,
"use_gzip": true,
"static_files_cache_time": 5,
"idle_connection_timeout": 60,
"server_header_field": "",
"keepalive_requests": 0,
"pipelining_requests": 0,
"gzip_static": true,
"client_max_body_size": "1M",
"client_max_memory_body_size": "64K",
"client_max_websocket_message_size": "128K"
},
"plugins": [{
"dependencies": [],
"config": {
"heartbeat_interval": 2
}
}],
"custom_config": {}
} }

12
config.testing.json Normal file
View file

@ -0,0 +1,12 @@
{
"listeners": [
{
"address": "0.0.0.0",
"port": 5000,
"https": false
}
],
"custom_config": {
"db_name": "core.testing.sqlite"
}
}

View file

@ -70,5 +70,5 @@ helpers::migrate_sql()
LOG_FATAL << "Couldn't write new Schema Version"; LOG_FATAL << "Couldn't write new Schema Version";
} }
return rc == SQLITE_DONE; return rc != SQLITE_DONE;
} }

23
main.cc
View file

@ -29,31 +29,38 @@ terminate(int signum)
}*/ }*/
int int
main() main(int argc, char** argv)
{ {
signal(SIGINT, terminate); signal(SIGINT, terminate);
signal(SIGABRT, terminate); signal(SIGABRT, terminate);
signal(SIGTERM, terminate); signal(SIGTERM, terminate);
signal(SIGKILL, terminate); signal(SIGKILL, terminate);
int rc; const char* config_file_name = "config.json";
if(argc == 2)
{
config_file_name = argv[1];
}
//Load config file
drogon::app().loadConfigFile(config_file_name);
const char* db_name = drogon::app().instance().getCustomConfig()["db_name"].asCString();
/* Open database */ /* Open database */
rc = sqlite3_open("core.sqlite", &globals::db); int rc = sqlite3_open(db_name, &globals::db);
if( rc ) { if(rc) {
LOG_FATAL << "Can't open database: " << sqlite3_errmsg(globals::db); LOG_FATAL << "Can't open database: " << sqlite3_errmsg(globals::db);
return 1; return 1;
} }
if(!helpers::migrate_sql()) if(helpers::migrate_sql())
{ {
terminate(1); terminate(1);
} }
//Load config file
drogon::app().loadConfigFile("config.json");
drogon::app().registerPostHandlingAdvice(add_cors_headers); drogon::app().registerPostHandlingAdvice(add_cors_headers);
drogon::app().instance().setCustom404Page(drogon::HttpResponse::newFileResponse("./static/index.html", "", drogon::CT_TEXT_HTML)); drogon::app().instance().setCustom404Page(drogon::HttpResponse::newFileResponse("./static/index.html", "", drogon::CT_TEXT_HTML));

View file

@ -0,0 +1,9 @@
test_name: Test basic requests
stages:
- name: Make sure we get any response
request:
url: http://localhost:5000/api/v1/schedules/
method: GET
response:
status_code: 200