#!/usr/bin/lua local marigold = require 'marigold' function test(description, func) io.write(description .. ': ') local result, msg = pcall(func) if result == true then print("OK") else print("FAIL") print(debug.traceback(msg)) print() end end function test_assert(str) local f = assert(loadstring('return ' .. str)) assert(f(), 'assertion failed: ' .. str) end test("marigold.get_metavars correctly calls os.getenv", function() -- mock os.getenv local old_getenv = os.getenv local env_tbl = { AUTH_TYPE = 'some auth type', CONTENT_LENGTH = 'a zillion', GATEWAY_INTERFACE = 'idk, something', PATH_INFO = 'youll see, its a secret', PATH_TRANSLATED = 'i told you its a secret!', QUERY_STRING = 'which string do you want?', REMOTE_ADDR = 'probably somewhere in nunavut', REMOTE_HOST = 'woah wait are we talking about parasites?', REMOTE_IDENT = 'are you a cop?', REMOTE_USER = 'seriously, you have to tell me if you are', REQUEST_METHOD = 'uhh, to do what?', SCRIPT_NAME = 'pretty sure this is hamlet', SERVER_NAME = 'this isnt a restaurant', SERVER_PROTOCOL = 'no really, not a restaurant', SERVER_SOFTWARE = 'not familiar with that dish...', } os.getenv = function(varname) return env_tbl[varname] end -- actually call the function --local metavars = marigold.get_metavars() test_assert("type(metavars) == 'table'") end)