Milter.test.TestBase Class Reference

Test mixin for unit testing milter applications. More...

List of all members.

Public Member Functions

def __init__
def log
def setsymval
 Set a macro value.
def getsymval
def replacebody
def chgheader
def addheader
def delrcpt
def addrcpt
def setreply
 Save the reply codes and messages in self._reply.
def setsymlist
def feedFile
 Feed a file like object to the milter.
def feedMsg
 Feed an email contained in a file to the milter.
def connect
 Call the connect and helo callbacks.

Public Attributes

 logfp

Private Attributes

 _protocol
 _delrcpt
 List of recipients deleted.
 _addrcpt
 List of recipients added.
 _macros
 Macros defined.
 _body
 The message body.
 _bodyreplaced
 True if the milter replaced the message body.
 _headerschanged
 True if the milter changed any headers.
 _reply
 Reply codes and messages set by the milter.
 _msg
 The rfc822 message object for the current email being fed to the milter.
 _symlist

Detailed Description

Test mixin for unit testing milter applications.

This mixin overrides many Milter.MilterBase methods with stub versions that simply record what was done.

Since:
0.9.8

Member Function Documentation

def Milter.test.TestBase.connect (   self,
  host = 'localhost',
  helo = 'spamrelay',
  ip = '1.2.3.4' 
)

Call the connect and helo callbacks.

The helo callback is not called if connect does not return CONTINUE.

Parameters:
host the hostname passed to the connect callback
helo the hostname passed to the helo callback
ip the IP address passed to the connect callback
def Milter.test.TestBase.feedFile (   self,
  fp,
  sender = "spam@adv.com",
  rcpt = "victim@lamb.com",
  rcpts 
)

Feed a file like object to the milter.

Calls envfrom, envrcpt for each recipient, header for each header field, body for each body block, and finally eom. A return code from the milter other than CONTINUE returns immediately with that return code.

This is a convenience method, a test could invoke the callbacks in sequence on its own - and for some complex tests, this may be necessary.

Parameters:
fp the file with rfc2822 message stream
sender the MAIL FROM
rcpt RCPT TO - additional recipients may follow
def Milter.test.TestBase.feedMsg (   self,
  fname,
  sender = "spam@adv.com",
  rcpts 
)

Feed an email contained in a file to the milter.

This is a convenience method that invokes feedFile .

Parameters:
sender MAIL FROM
rcpts RCPT TO, multiple recipients may be supplied
def Milter.test.TestBase.setreply (   self,
  rcode,
  xcode,
  msg 
)

Save the reply codes and messages in self._reply.

def Milter.test.TestBase.setsymval (   self,
  name,
  val 
)

Set a macro value.

These are retrieved by the milter with getsymval.

Parameters:
name the macro name, as passed to getsymval
val the macro value

Member Data Documentation

The message body.

True if the milter replaced the message body.

True if the milter changed any headers.

The rfc822 message object for the current email being fed to the milter.


The documentation for this class was generated from the following file:

Generated on 11 Jul 2015 for pymilter by  doxygen 1.6.1