ports/mail/py-pyspf/files/patch-test_testspf.py
Kubilay Kocak 866c4c9bfa mail/py-pyspf: Fix dependencies (missing & incorrect)
Revision 404778 [1] modified py-pyspf to only use dns/py3dns instead
of conditionally using dns/py-dns and py-py3dns depending on whether
Python 2.x or 3.x was being used.

dns/py-py3dns is a Python 3.x *only* package, but the port does not
currently [2] limit itself to USES=python:3.0+.

This results in errors for all dependent ports of py-pyspf when
Python 2.x is used, which was reported for
mail/postfix-policyd-spf-python. [3]

pyspf's README notes the following requirements:

  This package requires PyDNS (or Py3DNS for running with Python 3) and
  either the ipaddr or python3.3 and later

  This package requires authres from either pypi or
  http://launchpad.net/authentication-results-python to process
  and generate RFC 5451 Authentication Results headers.

  The spf module in this version has been tested with python3.2 and does
  not require using 2to3.

Accordingly, this change:

- Reverts to conditional RUN_DEPENDS on dns/py-dns or py-py3dns
  depending on whether Python 2.x or Python 3.x is being used.
- Adds authres to RUN_DEPENDS
- Adds a conditional RUN_DEPENDS on devel/py-ipaddr, depending on
  Python version.

While I'm here:

- Sort and group USE{S} entries
- Match COMMENT to setup.py:description
- Add test and post-extract targets, TEST_DEPENDS, and patch files
  so that tests can be run properly
- Pet several portlint warnings

[1] https://svnweb.freebsd.org/changeset/ports/404778
[2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206645
[3] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206643

QA:

 * portlint: OK (WARN: Makefile: [47]: possible use of "${CHMOD}")
 * porttest: OK (poudriere: 11amd64, python27, python34)
 * unittest: OK (Ran 425 tests in 0.155s)

PR:			206643
Reported by:		danger
Approved by:		portmgr (blanket)
MFH:			2016Q1
Differential Revision:	DXXXX
2016-01-26 14:01:37 +00:00

37 lines
1.3 KiB
Python

--- test/testspf.py.orig 2015-01-12 22:47:56 UTC
+++ test/testspf.py
@@ -221,9 +221,9 @@ def makeSuite(filename):
def suite():
suite = unittest.makeSuite(SPFTestCases,'test')
- suite.addTest(makeSuite('test.yml'))
- suite.addTest(makeSuite('rfc7208-tests.yml'))
- suite.addTest(makeSuite('rfc4408-tests.yml'))
+ suite.addTest(makeSuite('test/test.yml'))
+ suite.addTest(makeSuite('test/rfc7208-tests.yml'))
+ suite.addTest(makeSuite('test/rfc4408-tests.yml'))
import doctest
suite.addTest(doctest.DocTestSuite(spf))
return suite
@@ -237,9 +237,9 @@ if __name__ == '__main__':
# a specific test selected by id from YAML files
if not tc:
tc = unittest.TestSuite()
- t0 = loadYAML('rfc7208-tests.yml')
- t1 = loadYAML('rfc4408-tests.yml')
- t2 = loadYAML('test.yml')
+ t0 = loadYAML('test/rfc7208-tests.yml')
+ t1 = loadYAML('test/rfc4408-tests.yml')
+ t2 = loadYAML('test/test.yml')
if i in t0:
tc.addTest(SPFTestCase(t0[i]))
if i in t1:
@@ -248,7 +248,7 @@ if __name__ == '__main__':
tc.addTest(SPFTestCase(t2[i]))
if not tc:
# load zonedata for doctests
- fp = open('doctest.yml','rb')
+ fp = open('test/doctest.yml','rb')
try:
zonedata = loadZone(next(yaml.safe_load_all(fp)))
finally: fp.close()