From 2fa952e1086ea16c0732bea70b269d1cc142c08f Mon Sep 17 00:00:00 2001
From: "Stuart D. Gathman" <stuart@gathman.org>
Date: Fri, 2 Dec 2016 00:19:27 -0500
Subject: [PATCH] Make test cases work.  (Previous commit incomplete)

---
 Milter/__init__.py | 12 +++++++-----
 Milter/test.py     |  3 ++-
 sample.py          |  1 +
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Milter/__init__.py b/Milter/__init__.py
index 85c5ab0..b6ffd25 100755
--- a/Milter/__init__.py
+++ b/Milter/__init__.py
@@ -185,13 +185,15 @@ def noreply(func):
 # If some or all of these are unused, the bandwidth can be saved
 # by listing the ones that are used.
 # @since 1.0.2
-def symlist(func,*syms):
-  if func.__name__ not in MACRO_CALLBACKS:
-    raise ValueError('@symlist applied to non-symlist method: '+func.__name__)
+def symlist(*syms):
   if len(syms) > 5:
     raise ValueError('@symlist limited to 5 macros by MTA: '+func.__name__)
-  func._symlist = syms
-  return func
+  def setsyms(func):
+    if func.__name__ not in MACRO_CALLBACKS:
+      raise ValueError('@symlist applied to non-symlist method: '+func.__name__)
+    func._symlist = syms
+    return func
+  return setsyms
 
 ## Disabled action exception.
 # set_flags() can tell the MTA that this application will not use certain
diff --git a/Milter/test.py b/Milter/test.py
index c20be63..e73fbb2 100644
--- a/Milter/test.py
+++ b/Milter/test.py
@@ -120,7 +120,7 @@ class TestBase(object):
     self._reply = (rcode,xcode) + msg
 
   def setsymlist(self,stage,macros):
-    if not self._actions & SETSYMLIST:
+    if not self._actions & Milter.SETSYMLIST:
       raise DisabledAction("SETSYMLIST")
     if self._stage != -1:
       raise RuntimeError("setsymlist may only be called from negotiate")
@@ -220,6 +220,7 @@ class TestBase(object):
   def connect(self,host='localhost',helo='spamrelay',ip='1.2.3.4'):
     self._body = None
     self._bodyreplaced = False
+    self._setctx(None)
     opts = [ Milter.CURR_ACTS,~0,0,0 ]
     self._stage = -1
     rc = self.negotiate(opts)
diff --git a/sample.py b/sample.py
index 4829397..0889c19 100644
--- a/sample.py
+++ b/sample.py
@@ -47,6 +47,7 @@ class sampleMilter(Milter.Milter):
     self.mailfrom = f
     self.bodysize = 0
     self.user = self.getsymval('{auth_authen}')
+    self.auth_type = self.getsymval('{auth_type}')
     if self.user:
       self.log("user",self.user,"sent mail from",f,str)
     else:
-- 
GitLab