#!/usr/bin/env python import imp, os, sys, re, unittest from os import path sys.path.append("..") from piki_conf import * # Load the CGI script as a module f = file("../atomfeed.cgi", "r") atomfeedcgi = imp.load_module("atomfeedcgi", f, "../atomfeed.cgi", ("cgi", "r", imp.PY_SOURCE)) f.close() TEST_WORDS = [] # Oft used regular expressions status_200 = re.compile("^Status: 200", re.M) status_400 = re.compile("^Status: 400", re.M) xml_prolog = re.compile("^<\?xml ", re.M) class BaseFeedTest(unittest.TestCase): """Base class for testing, contains the default behaviors for setUp and tearDown.""" def setUp(self): os.environ['REMOTE_ADDR'] = '127.0.0.1' for word in TEST_WORDS: try: os.unlink(path.join(text_dir, word)) except: pass def tearDown(self): pass class Methods(BaseFeedTest): """Test for proper operation of the basic HTTP methods on the feed.""" def testGet(self): """Test that you can do a GET on any valid BaseFeedTest, The GET should always succeed""" os.environ["PATH_INFO"] = "/" os.environ["REQUEST_METHOD"] = "GET" res = atomfeedcgi.main() assert status_200.search(res) assert xml_prolog.search(res) def testGetNext(self): """Test that you can do a GET on the next 10 entries.""" os.environ["PATH_INFO"] = "/10" os.environ["REQUEST_METHOD"] = "GET" res = atomfeedcgi.main() assert status_200.search(res) assert xml_prolog.search(res) if __name__ == "__main__": unittest.main()