Skip to content
Snippets Groups Projects
Select Git revision
  • ac8e818a354e655d67fd2fb6737fe6373129ab9f
  • master default protected
2 results

apps.py

Blame
  • testutils.py 1.28 KiB
    import unittest
    import doctest
    import os
    import Milter.utils
    from Milter.cache import AddrCache
    
    class AddrCacheTestCase(unittest.TestCase):
    
      def setUp(self):
        self.fname = 'test.dat'
    
      def tearDown(self):
        os.remove(self.fname)
    
      def testAdd(self):
        cache = AddrCache(fname=self.fname)
        cache['foo@bar.com'] = None
        cache.addperm('baz@bar.com')
        cache['temp@bar.com'] = 'testing'
        self.failUnless(cache.has_key('foo@bar.com'))
        self.failUnless(not cache.has_key('hello@bar.com'))
        self.failUnless('baz@bar.com' in cache)
        self.assertEquals(cache['temp@bar.com'],'testing')
        s = open(self.fname).readlines()
        self.failUnless(len(s) == 2)
        self.failUnless(s[0].startswith('foo@bar.com '))
        self.assertEquals(s[1].strip(),'baz@bar.com')
        # check that new result overrides old
        cache['temp@bar.com'] = None
        self.failUnless(not cache['temp@bar.com'])
    
      def testDomain(self):
        fp = open(self.fname,'w')
        print >>fp,'spammer.com'
        fp.close()
        cache = AddrCache(fname=self.fname)
        cache.load(self.fname,30)
        self.failUnless('spammer.com' in cache)
    
    def suite(): 
      s = unittest.makeSuite(AddrCacheTestCase,'test')
      s.addTest(doctest.DocTestSuite(Milter.utils))
      return s
    
    if __name__ == '__main__':
      unittest.TextTestRunner().run(suite())