samwyse wrote:
I'm writing for the Google app engine and have stubbed my toe yet
again on a simple obstacle.  Non-trivial app engines programs require
the import of several modules that aren't normally in my PYTHONPATH.
I'd like to be able to test my code outside of the app engine
framework.  I've tried several solutions in the past that worked but
weren't particularly elegant or portable.  Now I've had a new idea.
Here's my latest attempt:

import os, re
if __name__ == '__main__':
    pass
else
    from google.appengine.ext import webapp
    register = webapp.template.create_template_register()

This works great, except my code makes use of the resister object in
several places, like this:

register.filter(emptylines)

Fortunately, I don't need the functionality of the object, I just want
something that won't generate an error when I use it.  So, what is the
quickest way to to create such an object (replacing the 'pass' in my
first snippet).  My solution is this:

    class C:
        def filter(self, *args, **kwds):
            pass
    register = C()

but it seems like I should be able to do something "better", as
measured by lines of code, faking more than just a 'filter' method, or
both.  Any ideas?  Thanks!

here is a class that accepts any method call without generating an error:

class Stub(object):
   @staticmethod
   def stub(*arg, **kwarg):
       pass
   def __getattribute__(self, name):
       return Stub.stub


s = Stub()
s.foo('bar')
s.bar
s.bar('', '', 5)


JM
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to