view tests/test_box.py @ 16:5d9d2ae0d995 default tip

added really basic plugin support
author Atul Varma <avarma@mozilla.com>
date Mon, 31 May 2010 19:29:37 -0700
parents ae958b456392
children
line wrap: on
line source

import unittest
import logging

import sjsbox.box
from sjsbox.bunch import Bunch

class PluginTests(unittest.TestCase):
    def setUp(self):
        self.foo = Bunch(
            mtime = 0,
            name = 'foo.js',
            contents = """function handle(request) {
              printer("hi " + request.path); return "woot"; }"""
            )
        self.box = sjsbox.box.BoxParent(self.foo,
                                        logging.getLogger(),
                                        ['testplugins.printer'])

    def tearDown(self):
        self.box.shutdown()

    def test_printer(self):
        self.assertEqual(self.box.handle('GET', '/'),
                         "woot")

class BoxesTests(unittest.TestCase):
    def setUp(self):
        self.foo = Bunch(
            mtime = 0,
            name = 'foo.js',
            contents = 'function handle() { return 404; }'
            )
        self.dir = [self.foo]
        self.boxes = sjsbox.box.Boxes(self.dir)
        self.assertEqual(self.boxes['foo'].handle('GET', '/'),
                         404)

    def tearDown(self):
        self.boxes.shutdown()

    def test_contains_works(self):
        self.assertTrue('foo' in self.boxes)

    def test_handle_works(self):
        self.assertEqual(self.boxes['foo'].handle('GET', '/'),
                         404)

    def test_status_works(self):
        self.assertTrue('rss' in self.boxes['foo'].status)

    def test_update_works(self):
        self.boxes.update()
        self.assertEqual(self.boxes['foo'].handle('GET', '/'),
                         404)

        self.foo.mtime = 1
        self.foo.contents = 'function handle() { return "yo"; }';
        self.boxes.update()
        self.assertEqual(self.boxes['foo'].handle('GET', '/'),
                         u'yo')

    def test_remove_works(self):
        self.dir[:] = []
        self.boxes.update()
        self.assertFalse('foo' in self.boxes)