Unit tests working, with pkgutil not broken, on Python 3.3!!!
This commit is contained in:
parent
2ad2b0e4fa
commit
613db3c2f6
|
@ -8,3 +8,4 @@ bower_components
|
|||
*.egg-info
|
||||
build/*
|
||||
.cache/*
|
||||
.tox/*
|
||||
|
|
|
@ -13,7 +13,7 @@ Report Bugs
|
|||
~~~~~~~~~~~
|
||||
|
||||
Report bugs at
|
||||
https://github.com/elfsternberg/py-polymorphic-loader/issues.
|
||||
https://github.com/elfsternberg/polyloader/issues.
|
||||
|
||||
If you are reporting a bug, please include:
|
||||
|
||||
|
@ -37,15 +37,15 @@ Look through the GitHub issues for features. Anything tagged with
|
|||
Write Documentation
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
py-polymorphic-loader could always use more documentation, whether as
|
||||
part of the official py-polymorphic-loader docs, in docstrings, or even
|
||||
polyloader could always use more documentation, whether as
|
||||
part of the official polyloader docs, in docstrings, or even
|
||||
on the web in blog posts, articles, and such.
|
||||
|
||||
Submit Feedback
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
The best way to send feedback is to file an issue at
|
||||
https://github.com/elfsternberg/py-polymorphic-loader/issues.
|
||||
https://github.com/elfsternberg/polyloader/issues.
|
||||
|
||||
If you are proposing a feature:
|
||||
|
||||
|
@ -57,15 +57,15 @@ If you are proposing a feature:
|
|||
Get Started!
|
||||
------------
|
||||
|
||||
Ready to contribute? Here's how to set up py-polymorphic-loader for
|
||||
Ready to contribute? Here's how to set up polyloader for
|
||||
local development.
|
||||
|
||||
1. Fork the py-polymorphic-loader repo on GitHub.
|
||||
1. Fork the polyloader repo on GitHub.
|
||||
2. Clone your fork locally:
|
||||
|
||||
::
|
||||
|
||||
$ git clone git@github.com:your_name_here/py-polymorphic-loader.git
|
||||
$ git clone git@github.com:your_name_here/polyloader.git
|
||||
|
||||
3. Install your local copy into a virtualenv. Assuming you have
|
||||
virtualenvwrapper installed, this is how you set up your fork for
|
||||
|
@ -73,8 +73,8 @@ local development.
|
|||
|
||||
::
|
||||
|
||||
$ mkvirtualenv py-polymorphic-loader
|
||||
$ cd py-polymorphic-loader/
|
||||
$ mkvirtualenv polyloader
|
||||
$ cd polyloader/
|
||||
$ python setup.py develop
|
||||
|
||||
4. Create a branch for local development:
|
||||
|
@ -90,7 +90,7 @@ local development.
|
|||
|
||||
::
|
||||
|
||||
$ flake8 py-polymorphic-loader tests
|
||||
$ flake8 polyloader tests
|
||||
$ python setup.py test or py.test
|
||||
$ tox
|
||||
|
||||
|
@ -117,7 +117,7 @@ Before you submit a pull request, check that it meets these guidelines:
|
|||
the feature to the list in README.rst.
|
||||
3. The pull request should work for Python 2.6, 2.7, 3.3, 3.4 and 3.5,
|
||||
and for PyPy. Check
|
||||
https://travis-ci.org/elfsternberg/py-polymorphic-loader/pull_requests
|
||||
https://travis-ci.org/elfsternberg/polyloader/pull_requests
|
||||
and make sure that the tests pass for all supported Python versions.
|
||||
|
||||
Tips
|
||||
|
@ -125,4 +125,4 @@ Tips
|
|||
|
||||
To run a subset of tests:
|
||||
|
||||
$ py.test tests.test\_py-polymorphic-loader
|
||||
$ py.test tests.test\_polyloader
|
||||
|
|
|
@ -174,5 +174,5 @@ def install(compiler, suffixes):
|
|||
ExtendedSourceFileLoader.get_extended_suffixes_inclusive())
|
||||
sys.path_hooks[fpos] = ExtendedFileFinder.path_hook(*supported_loaders)
|
||||
iter_importer_modules.register(ExtendedFileFinder, ExtendedFileFinder.iter_modules)
|
||||
if sys.path[0] !== "":
|
||||
if sys.path[0] != "":
|
||||
sys.path.insert(0, "")
|
||||
|
|
2
setup.py
2
setup.py
|
@ -31,7 +31,7 @@ setup(
|
|||
author_email='elf.sternberg@gmail.com',
|
||||
url='https://github.com/elfsternberg/polyloader',
|
||||
packages=[
|
||||
'py-polymorphic-loader',
|
||||
'polyloader',
|
||||
],
|
||||
package_dir={'polyloader': 'polyloader'},
|
||||
include_package_data=True,
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Test Two
|
|
@ -0,0 +1 @@
|
|||
Test Three
|
|
@ -2,58 +2,51 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
test_py-polymorphic-loader
|
||||
test_polyloader
|
||||
----------------------------------
|
||||
|
||||
Tests for `py-polymorphic-loader` module.
|
||||
Tests for `polyloader` module.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from polyloader import polyloader
|
||||
|
||||
from py_polymorphic_loader import polymorph
|
||||
|
||||
# Note that these compilers don't actually load anything out of the
|
||||
# Note that these compilers don't actually load much out of the
|
||||
# source files. That's not the point. The point is to show that the
|
||||
# correct compiler has been found for a given extension.
|
||||
|
||||
def compiler2(filename):
|
||||
return compile("result='Success for %s'" % (filename), filename, "exec")
|
||||
|
||||
def compiler3(filename):
|
||||
return compile("result='Success for %s'" % (filename), filename, "exec")
|
||||
def compiler(pt):
|
||||
def _compiler(source_path, modulename):
|
||||
with open(source_path, "r") as file:
|
||||
return compile("result='Success for %s: %s'" % (pt, file.readline().rstrip()), modulename, "exec")
|
||||
return _compiler
|
||||
|
||||
class Test_Polymorph_1(object):
|
||||
def test_import1(self):
|
||||
import polytestmix
|
||||
polytestmix.install(compiler2, ['.2'])
|
||||
polytestmix.install(compiler3, ['.3'])
|
||||
assert(polytestmix.test2.result = "Success for test2")
|
||||
assert(polytestmix.test3.result = "Success for test3")
|
||||
|
||||
class Test_Polymorph_2(object):
|
||||
def test_import2(self):
|
||||
import polytestmix
|
||||
polytestmix.install(compiler2, ['.2'])
|
||||
polytestmix.install(compiler3, ['.3'])
|
||||
assert(polytestmix.test2.result = "Success for test2")
|
||||
|
||||
class Test_Polymorph_2(object):
|
||||
def test_import2(self):
|
||||
import polytestmix.test3
|
||||
polytestmix.install(compiler2, ['.2'])
|
||||
polytestmix.install(compiler3, ['.3'])
|
||||
assert(polytestmix.test3.result = "Success for test3")
|
||||
polyloader.install(compiler("2"), ['.2'])
|
||||
polyloader.install(compiler("3"), ['.3'])
|
||||
from .polytestmix import test2
|
||||
from .polytestmix import test3
|
||||
assert(test2.result == "Success for 2: Test Two")
|
||||
assert(test3.result == "Success for 3: Test Three")
|
||||
|
||||
class Test_Polymorph_Iterator(object):
|
||||
''' The Django Compatibility test. '''
|
||||
''' The Django Compatibility test: Can we load arbitrary modules from a package? '''
|
||||
def test_iterator(self):
|
||||
import polytestmix.test3
|
||||
polytestmix.install(compiler2, ['.2'])
|
||||
polytestmix.install(compiler3, ['.3'])
|
||||
target_dir = os.path.join('.', 'polytestmix')
|
||||
files = set([name for _, name, is_pkg in pkgutil.iter_modules([targetdir])
|
||||
import os
|
||||
import pkgutil
|
||||
import inspect
|
||||
polyloader.install(compiler("2"), ['.2'])
|
||||
polyloader.install(compiler("3"), ['.3'])
|
||||
from .polytestmix import test2
|
||||
from .polytestmix import test3
|
||||
target_dir = os.path.join(
|
||||
os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))),
|
||||
'polytestmix')
|
||||
modules = set([name for _, name, is_pkg in pkgutil.iter_modules([target_dir])
|
||||
if not is_pkg and not name.startswith('_')])
|
||||
assert(files == set(['test2.2', 'test3.3', 'test1.py']))
|
||||
assert(modules == set(['test1', 'test2', 'test3']))
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue