diff --git a/.travis.yml b/.travis.yml index c5435994e..9c94e4347 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,20 +9,15 @@ python: - "3.4" - "3.5" - "3.6" -# Disabled for now since cause more pain than gain -# - "pypy" -# - "pypy3" cache: - pip install: - - travis_retry pip install -q codecov - - pip install flake8 - pip install -r requirements-dev.txt script: - - pytest --doctest-modules behavioral/ creational/ dft/ fundamental/ other/ structural/ # exclude tests/ + - pytest --doctest-modules patterns/ - pytest -s -vv --cov=. --log-level=INFO tests/ # Actually run all the scripts, contributing to coverage - PYTHONPATH=. ./run_all.sh diff --git a/behavioral/__init__.py b/patterns/__init__.py similarity index 100% rename from behavioral/__init__.py rename to patterns/__init__.py diff --git a/creational/__init__.py b/patterns/behavioral/__init__.py similarity index 100% rename from creational/__init__.py rename to patterns/behavioral/__init__.py diff --git a/behavioral/catalog.py b/patterns/behavioral/catalog.py similarity index 100% rename from behavioral/catalog.py rename to patterns/behavioral/catalog.py diff --git a/behavioral/chain.py b/patterns/behavioral/chain.py similarity index 100% rename from behavioral/chain.py rename to patterns/behavioral/chain.py diff --git a/behavioral/chaining_method.py b/patterns/behavioral/chaining_method.py similarity index 100% rename from behavioral/chaining_method.py rename to patterns/behavioral/chaining_method.py diff --git a/behavioral/command.py b/patterns/behavioral/command.py similarity index 100% rename from behavioral/command.py rename to patterns/behavioral/command.py diff --git a/behavioral/iterator.py b/patterns/behavioral/iterator.py similarity index 100% rename from behavioral/iterator.py rename to patterns/behavioral/iterator.py diff --git a/behavioral/mediator.py b/patterns/behavioral/mediator.py similarity index 100% rename from behavioral/mediator.py rename to patterns/behavioral/mediator.py diff --git a/behavioral/memento.py b/patterns/behavioral/memento.py similarity index 100% rename from behavioral/memento.py rename to patterns/behavioral/memento.py diff --git a/behavioral/observer.py b/patterns/behavioral/observer.py similarity index 100% rename from behavioral/observer.py rename to patterns/behavioral/observer.py diff --git a/behavioral/publish_subscribe.py b/patterns/behavioral/publish_subscribe.py similarity index 100% rename from behavioral/publish_subscribe.py rename to patterns/behavioral/publish_subscribe.py diff --git a/behavioral/registry.py b/patterns/behavioral/registry.py similarity index 100% rename from behavioral/registry.py rename to patterns/behavioral/registry.py diff --git a/behavioral/specification.py b/patterns/behavioral/specification.py similarity index 100% rename from behavioral/specification.py rename to patterns/behavioral/specification.py diff --git a/behavioral/state.py b/patterns/behavioral/state.py similarity index 100% rename from behavioral/state.py rename to patterns/behavioral/state.py diff --git a/behavioral/strategy.py b/patterns/behavioral/strategy.py similarity index 100% rename from behavioral/strategy.py rename to patterns/behavioral/strategy.py diff --git a/behavioral/template.py b/patterns/behavioral/template.py similarity index 100% rename from behavioral/template.py rename to patterns/behavioral/template.py diff --git a/behavioral/visitor.py b/patterns/behavioral/visitor.py similarity index 100% rename from behavioral/visitor.py rename to patterns/behavioral/visitor.py diff --git a/behavioral/viz/catalog.py.png b/patterns/behavioral/viz/catalog.py.png similarity index 100% rename from behavioral/viz/catalog.py.png rename to patterns/behavioral/viz/catalog.py.png diff --git a/behavioral/viz/chain.py.png b/patterns/behavioral/viz/chain.py.png similarity index 100% rename from behavioral/viz/chain.py.png rename to patterns/behavioral/viz/chain.py.png diff --git a/behavioral/viz/chaining_method.py.png b/patterns/behavioral/viz/chaining_method.py.png similarity index 100% rename from behavioral/viz/chaining_method.py.png rename to patterns/behavioral/viz/chaining_method.py.png diff --git a/behavioral/viz/command.py.png b/patterns/behavioral/viz/command.py.png similarity index 100% rename from behavioral/viz/command.py.png rename to patterns/behavioral/viz/command.py.png diff --git a/behavioral/viz/iterator.py.png b/patterns/behavioral/viz/iterator.py.png similarity index 100% rename from behavioral/viz/iterator.py.png rename to patterns/behavioral/viz/iterator.py.png diff --git a/behavioral/viz/mediator.py.png b/patterns/behavioral/viz/mediator.py.png similarity index 100% rename from behavioral/viz/mediator.py.png rename to patterns/behavioral/viz/mediator.py.png diff --git a/behavioral/viz/memento.py.png b/patterns/behavioral/viz/memento.py.png similarity index 100% rename from behavioral/viz/memento.py.png rename to patterns/behavioral/viz/memento.py.png diff --git a/behavioral/viz/observer.py.png b/patterns/behavioral/viz/observer.py.png similarity index 100% rename from behavioral/viz/observer.py.png rename to patterns/behavioral/viz/observer.py.png diff --git a/behavioral/viz/publish_subscribe.py.png b/patterns/behavioral/viz/publish_subscribe.py.png similarity index 100% rename from behavioral/viz/publish_subscribe.py.png rename to patterns/behavioral/viz/publish_subscribe.py.png diff --git a/behavioral/viz/registry.py.png b/patterns/behavioral/viz/registry.py.png similarity index 100% rename from behavioral/viz/registry.py.png rename to patterns/behavioral/viz/registry.py.png diff --git a/behavioral/viz/specification.py.png b/patterns/behavioral/viz/specification.py.png similarity index 100% rename from behavioral/viz/specification.py.png rename to patterns/behavioral/viz/specification.py.png diff --git a/behavioral/viz/state.py.png b/patterns/behavioral/viz/state.py.png similarity index 100% rename from behavioral/viz/state.py.png rename to patterns/behavioral/viz/state.py.png diff --git a/behavioral/viz/strategy.py.png b/patterns/behavioral/viz/strategy.py.png similarity index 100% rename from behavioral/viz/strategy.py.png rename to patterns/behavioral/viz/strategy.py.png diff --git a/behavioral/viz/template.py.png b/patterns/behavioral/viz/template.py.png similarity index 100% rename from behavioral/viz/template.py.png rename to patterns/behavioral/viz/template.py.png diff --git a/behavioral/viz/visitor.py.png b/patterns/behavioral/viz/visitor.py.png similarity index 100% rename from behavioral/viz/visitor.py.png rename to patterns/behavioral/viz/visitor.py.png diff --git a/dft/__init__.py b/patterns/creational/__init__.py similarity index 100% rename from dft/__init__.py rename to patterns/creational/__init__.py diff --git a/creational/abstract_factory.py b/patterns/creational/abstract_factory.py similarity index 100% rename from creational/abstract_factory.py rename to patterns/creational/abstract_factory.py diff --git a/creational/borg.py b/patterns/creational/borg.py similarity index 100% rename from creational/borg.py rename to patterns/creational/borg.py diff --git a/creational/builder.py b/patterns/creational/builder.py similarity index 100% rename from creational/builder.py rename to patterns/creational/builder.py diff --git a/creational/factory_method.py b/patterns/creational/factory_method.py similarity index 100% rename from creational/factory_method.py rename to patterns/creational/factory_method.py diff --git a/creational/lazy_evaluation.py b/patterns/creational/lazy_evaluation.py similarity index 100% rename from creational/lazy_evaluation.py rename to patterns/creational/lazy_evaluation.py diff --git a/creational/pool.py b/patterns/creational/pool.py similarity index 100% rename from creational/pool.py rename to patterns/creational/pool.py diff --git a/creational/prototype.py b/patterns/creational/prototype.py similarity index 100% rename from creational/prototype.py rename to patterns/creational/prototype.py diff --git a/creational/viz/abstract_factory.py.png b/patterns/creational/viz/abstract_factory.py.png similarity index 100% rename from creational/viz/abstract_factory.py.png rename to patterns/creational/viz/abstract_factory.py.png diff --git a/creational/viz/borg.py.png b/patterns/creational/viz/borg.py.png similarity index 100% rename from creational/viz/borg.py.png rename to patterns/creational/viz/borg.py.png diff --git a/creational/viz/builder.py.png b/patterns/creational/viz/builder.py.png similarity index 100% rename from creational/viz/builder.py.png rename to patterns/creational/viz/builder.py.png diff --git a/creational/viz/factory_method.py.png b/patterns/creational/viz/factory_method.py.png similarity index 100% rename from creational/viz/factory_method.py.png rename to patterns/creational/viz/factory_method.py.png diff --git a/creational/viz/lazy_evaluation.py.png b/patterns/creational/viz/lazy_evaluation.py.png similarity index 100% rename from creational/viz/lazy_evaluation.py.png rename to patterns/creational/viz/lazy_evaluation.py.png diff --git a/creational/viz/pool.py.png b/patterns/creational/viz/pool.py.png similarity index 100% rename from creational/viz/pool.py.png rename to patterns/creational/viz/pool.py.png diff --git a/creational/viz/prototype.py.png b/patterns/creational/viz/prototype.py.png similarity index 100% rename from creational/viz/prototype.py.png rename to patterns/creational/viz/prototype.py.png diff --git a/fundamental/__init__.py b/patterns/dft/__init__.py similarity index 100% rename from fundamental/__init__.py rename to patterns/dft/__init__.py diff --git a/dft/constructor_injection.py b/patterns/dft/constructor_injection.py similarity index 100% rename from dft/constructor_injection.py rename to patterns/dft/constructor_injection.py diff --git a/dft/parameter_injection.py b/patterns/dft/parameter_injection.py similarity index 100% rename from dft/parameter_injection.py rename to patterns/dft/parameter_injection.py diff --git a/dft/setter_injection.py b/patterns/dft/setter_injection.py similarity index 100% rename from dft/setter_injection.py rename to patterns/dft/setter_injection.py diff --git a/other/__init__.py b/patterns/fundamental/__init__.py similarity index 100% rename from other/__init__.py rename to patterns/fundamental/__init__.py diff --git a/fundamental/delegation_pattern.py b/patterns/fundamental/delegation_pattern.py similarity index 100% rename from fundamental/delegation_pattern.py rename to patterns/fundamental/delegation_pattern.py diff --git a/fundamental/viz/delegation_pattern.py.png b/patterns/fundamental/viz/delegation_pattern.py.png similarity index 100% rename from fundamental/viz/delegation_pattern.py.png rename to patterns/fundamental/viz/delegation_pattern.py.png diff --git a/other/hsm/__init__.py b/patterns/other/__init__.py similarity index 100% rename from other/hsm/__init__.py rename to patterns/other/__init__.py diff --git a/other/blackboard.py b/patterns/other/blackboard.py similarity index 100% rename from other/blackboard.py rename to patterns/other/blackboard.py diff --git a/other/graph_search.py b/patterns/other/graph_search.py similarity index 100% rename from other/graph_search.py rename to patterns/other/graph_search.py diff --git a/structural/__init__.py b/patterns/other/hsm/__init__.py similarity index 100% rename from structural/__init__.py rename to patterns/other/hsm/__init__.py diff --git a/other/hsm/classes_hsm.png b/patterns/other/hsm/classes_hsm.png similarity index 100% rename from other/hsm/classes_hsm.png rename to patterns/other/hsm/classes_hsm.png diff --git a/other/hsm/classes_test_hsm.png b/patterns/other/hsm/classes_test_hsm.png similarity index 100% rename from other/hsm/classes_test_hsm.png rename to patterns/other/hsm/classes_test_hsm.png diff --git a/other/hsm/hsm.py b/patterns/other/hsm/hsm.py similarity index 100% rename from other/hsm/hsm.py rename to patterns/other/hsm/hsm.py diff --git a/structural/3-tier.py b/patterns/structural/3-tier.py similarity index 100% rename from structural/3-tier.py rename to patterns/structural/3-tier.py diff --git a/patterns/structural/__init__.py b/patterns/structural/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/structural/adapter.py b/patterns/structural/adapter.py similarity index 100% rename from structural/adapter.py rename to patterns/structural/adapter.py diff --git a/structural/bridge.py b/patterns/structural/bridge.py similarity index 100% rename from structural/bridge.py rename to patterns/structural/bridge.py diff --git a/structural/composite.py b/patterns/structural/composite.py similarity index 100% rename from structural/composite.py rename to patterns/structural/composite.py diff --git a/structural/decorator.py b/patterns/structural/decorator.py similarity index 100% rename from structural/decorator.py rename to patterns/structural/decorator.py diff --git a/structural/facade.py b/patterns/structural/facade.py similarity index 100% rename from structural/facade.py rename to patterns/structural/facade.py diff --git a/structural/flyweight.py b/patterns/structural/flyweight.py similarity index 100% rename from structural/flyweight.py rename to patterns/structural/flyweight.py diff --git a/structural/front_controller.py b/patterns/structural/front_controller.py similarity index 100% rename from structural/front_controller.py rename to patterns/structural/front_controller.py diff --git a/structural/mvc.py b/patterns/structural/mvc.py similarity index 100% rename from structural/mvc.py rename to patterns/structural/mvc.py diff --git a/structural/proxy.py b/patterns/structural/proxy.py similarity index 100% rename from structural/proxy.py rename to patterns/structural/proxy.py diff --git a/structural/viz/3-tier.py.png b/patterns/structural/viz/3-tier.py.png similarity index 100% rename from structural/viz/3-tier.py.png rename to patterns/structural/viz/3-tier.py.png diff --git a/structural/viz/adapter.py.png b/patterns/structural/viz/adapter.py.png similarity index 100% rename from structural/viz/adapter.py.png rename to patterns/structural/viz/adapter.py.png diff --git a/structural/viz/bridge.py.png b/patterns/structural/viz/bridge.py.png similarity index 100% rename from structural/viz/bridge.py.png rename to patterns/structural/viz/bridge.py.png diff --git a/structural/viz/composite.py.png b/patterns/structural/viz/composite.py.png similarity index 100% rename from structural/viz/composite.py.png rename to patterns/structural/viz/composite.py.png diff --git a/structural/viz/decorator.py.png b/patterns/structural/viz/decorator.py.png similarity index 100% rename from structural/viz/decorator.py.png rename to patterns/structural/viz/decorator.py.png diff --git a/structural/viz/facade.py.png b/patterns/structural/viz/facade.py.png similarity index 100% rename from structural/viz/facade.py.png rename to patterns/structural/viz/facade.py.png diff --git a/structural/viz/flyweight.py.png b/patterns/structural/viz/flyweight.py.png similarity index 100% rename from structural/viz/flyweight.py.png rename to patterns/structural/viz/flyweight.py.png diff --git a/structural/viz/front_controller.py.png b/patterns/structural/viz/front_controller.py.png similarity index 100% rename from structural/viz/front_controller.py.png rename to patterns/structural/viz/front_controller.py.png diff --git a/structural/viz/mvc.py.png b/patterns/structural/viz/mvc.py.png similarity index 100% rename from structural/viz/mvc.py.png rename to patterns/structural/viz/mvc.py.png diff --git a/structural/viz/proxy.py.png b/patterns/structural/viz/proxy.py.png similarity index 100% rename from structural/viz/proxy.py.png rename to patterns/structural/viz/proxy.py.png diff --git a/requirements-dev.txt b/requirements-dev.txt index bcf65b842..f6cec75db 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +1,5 @@ +-e . pytest~=4.1 pytest-cov~=2.6 +flake8~=3.6 +codecov~=2.0 diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..3b0136779 --- /dev/null +++ b/setup.py @@ -0,0 +1,14 @@ +from setuptools import setup + +setup( + name="python-patterns", + description="A collection of design patterns and idioms in Python.", + classifiers=[ + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + ], +) diff --git a/tests/test_command.py b/tests/behavioral/test_command.py similarity index 89% rename from tests/test_command.py rename to tests/behavioral/test_command.py index c992295af..2532af029 100644 --- a/tests/test_command.py +++ b/tests/behavioral/test_command.py @@ -3,7 +3,7 @@ import os import shutil import unittest -from behavioral.command import MoveFileCommand +from patterns.behavioral.command import MoveFileCommand class CommandTest(unittest.TestCase): @@ -23,8 +23,8 @@ def setUpClass(self): - get the temporary test directory - and initializes the command stack. """ - os.mkdir('tests/test_command') - open('tests/test_command/foo.txt', 'w').close() + os.mkdir('tests/behavioral/test_command') + open('tests/behavioral/test_command/foo.txt', 'w').close() self.__get_test_directory() self.command_stack = [] self.command_stack.append( @@ -56,4 +56,4 @@ def tearDownClass(self): """ Remove the temporary directory /test_command and its content. """ - shutil.rmtree('tests/test_command') + shutil.rmtree('tests/behavioral/test_command') diff --git a/tests/test_observer.py b/tests/behavioral/test_observer.py similarity index 96% rename from tests/test_observer.py rename to tests/behavioral/test_observer.py index 669a00ec4..2264a9ee2 100644 --- a/tests/test_observer.py +++ b/tests/behavioral/test_observer.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from behavioral.observer import Subject, Data, DecimalViewer, HexViewer +from patterns.behavioral.observer import Subject, Data, DecimalViewer, HexViewer try: from unittest.mock import patch diff --git a/tests/test_publish_subscribe.py b/tests/behavioral/test_publish_subscribe.py similarity index 97% rename from tests/test_publish_subscribe.py rename to tests/behavioral/test_publish_subscribe.py index e1da4b636..20bd93c54 100644 --- a/tests/test_publish_subscribe.py +++ b/tests/behavioral/test_publish_subscribe.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from behavioral.publish_subscribe import Provider, Publisher, Subscriber +from patterns.behavioral.publish_subscribe import Provider, Publisher, Subscriber try: from unittest.mock import patch, call diff --git a/tests/test_state.py b/tests/behavioral/test_state.py similarity index 97% rename from tests/test_state.py rename to tests/behavioral/test_state.py index 1f5f8c8c0..4009820b0 100644 --- a/tests/test_state.py +++ b/tests/behavioral/test_state.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from behavioral.state import Radio +from patterns.behavioral.state import Radio class RadioTest(unittest.TestCase): diff --git a/tests/test_abstract_factory.py b/tests/creational/test_abstract_factory.py similarity index 87% rename from tests/test_abstract_factory.py rename to tests/creational/test_abstract_factory.py index 28a75793f..5ecaf00ae 100644 --- a/tests/test_abstract_factory.py +++ b/tests/creational/test_abstract_factory.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.abstract_factory import PetShop, Dog +from patterns.creational.abstract_factory import PetShop, Dog try: from unittest.mock import patch diff --git a/tests/test_borg.py b/tests/creational/test_borg.py similarity index 93% rename from tests/test_borg.py rename to tests/creational/test_borg.py index 22d33b5f7..62e9efe43 100644 --- a/tests/test_borg.py +++ b/tests/creational/test_borg.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.borg import Borg, YourBorg +from patterns.creational.borg import Borg, YourBorg class BorgTest(unittest.TestCase): diff --git a/tests/test_builder.py b/tests/creational/test_builder.py similarity index 87% rename from tests/test_builder.py rename to tests/creational/test_builder.py index f7873ca1f..4b63531a7 100644 --- a/tests/test_builder.py +++ b/tests/creational/test_builder.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.builder import construct_building, House, Flat, ComplexHouse +from patterns.creational.builder import construct_building, House, Flat, ComplexHouse class TestSimple(unittest.TestCase): diff --git a/tests/test_factory_method.py b/tests/creational/test_factory_method.py similarity index 94% rename from tests/test_factory_method.py rename to tests/creational/test_factory_method.py index e06a3eaf4..dd6ae66e6 100644 --- a/tests/test_factory_method.py +++ b/tests/creational/test_factory_method.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.factory_method import get_localizer +from patterns.creational.factory_method import get_localizer class TestLocalizer(unittest.TestCase): diff --git a/tests/test_lazy.py b/tests/creational/test_lazy.py similarity index 95% rename from tests/test_lazy.py rename to tests/creational/test_lazy.py index df44e9e29..c61ee9a16 100644 --- a/tests/test_lazy.py +++ b/tests/creational/test_lazy.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from __future__ import print_function import unittest -from creational.lazy_evaluation import Person +from patterns.creational.lazy_evaluation import Person class TestDynamicExpanding(unittest.TestCase): diff --git a/tests/test_pool.py b/tests/creational/test_pool.py similarity index 97% rename from tests/test_pool.py rename to tests/creational/test_pool.py index 0b579de3c..1217ee2cd 100644 --- a/tests/test_pool.py +++ b/tests/creational/test_pool.py @@ -6,7 +6,7 @@ import queue except ImportError: # python 2.x compatibility import Queue as queue -from creational.pool import ObjectPool +from patterns.creational.pool import ObjectPool class TestPool(unittest.TestCase): diff --git a/tests/test_prototype.py b/tests/creational/test_prototype.py similarity index 96% rename from tests/test_prototype.py rename to tests/creational/test_prototype.py index 6ebcfed7a..2e462d1c2 100644 --- a/tests/test_prototype.py +++ b/tests/creational/test_prototype.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.prototype import Prototype, PrototypeDispatcher +from patterns.creational.prototype import Prototype, PrototypeDispatcher class TestPrototypeFeatures(unittest.TestCase): diff --git a/tests/test_constructor_injection.py b/tests/dft/test_constructor_injection.py similarity index 93% rename from tests/test_constructor_injection.py rename to tests/dft/test_constructor_injection.py index b70fd9be9..6ee836019 100644 --- a/tests/test_constructor_injection.py +++ b/tests/dft/test_constructor_injection.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import unittest -from dft.constructor_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime +from patterns.dft.constructor_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime """ Port of the Java example of "Constructor Injection" in diff --git a/tests/test_parameter_injection.py b/tests/dft/test_parameter_injection.py similarity index 94% rename from tests/test_parameter_injection.py rename to tests/dft/test_parameter_injection.py index 80577b1b1..da340b937 100644 --- a/tests/test_parameter_injection.py +++ b/tests/dft/test_parameter_injection.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import unittest -from dft.parameter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime +from patterns.dft.parameter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime """ Port of the Java example of "Parameter Injection" in diff --git a/tests/test_setter_injection.py b/tests/dft/test_setter_injection.py similarity index 94% rename from tests/test_setter_injection.py rename to tests/dft/test_setter_injection.py index da8957281..fce7b2c9f 100644 --- a/tests/test_setter_injection.py +++ b/tests/dft/test_setter_injection.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import unittest -from dft.setter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime +from patterns.dft.setter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime """ Port of the Java example of "Setter Injection" in diff --git a/tests/test_adapter.py b/tests/structural/test_adapter.py similarity index 97% rename from tests/test_adapter.py rename to tests/structural/test_adapter.py index 3da8ea9ba..667c2fb53 100644 --- a/tests/test_adapter.py +++ b/tests/structural/test_adapter.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.adapter import Dog, Cat, Human, Car, Adapter +from patterns.structural.adapter import Dog, Cat, Human, Car, Adapter class ClassTest(unittest.TestCase): diff --git a/tests/test_bridge.py b/tests/structural/test_bridge.py similarity index 95% rename from tests/test_bridge.py rename to tests/structural/test_bridge.py index e127c76d8..5541624c9 100644 --- a/tests/test_bridge.py +++ b/tests/structural/test_bridge.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.bridge import DrawingAPI1, DrawingAPI2, CircleShape +from patterns.structural.bridge import DrawingAPI1, DrawingAPI2, CircleShape try: from unittest.mock import patch diff --git a/tests/test_decorator.py b/tests/structural/test_decorator.py similarity index 88% rename from tests/test_decorator.py rename to tests/structural/test_decorator.py index 583864461..2b6933c7f 100644 --- a/tests/test_decorator.py +++ b/tests/structural/test_decorator.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.decorator import TextTag, BoldWrapper, ItalicWrapper +from patterns.structural.decorator import TextTag, BoldWrapper, ItalicWrapper class TestTextWrapping(unittest.TestCase): diff --git a/tests/test_facade.py b/tests/structural/test_facade.py similarity index 96% rename from tests/test_facade.py rename to tests/structural/test_facade.py index 344e73968..a3765d28a 100644 --- a/tests/test_facade.py +++ b/tests/structural/test_facade.py @@ -7,7 +7,7 @@ from io import StringIO except ImportError: from StringIO import StringIO -from structural.facade import TestRunner, TC1, TC2, TC3 +from patterns.structural.facade import TestRunner, TC1, TC2, TC3 class TestRunnerFacilities(unittest.TestCase): diff --git a/tests/test_flyweight.py b/tests/structural/test_flyweight.py similarity index 95% rename from tests/test_flyweight.py rename to tests/structural/test_flyweight.py index 4da3564f4..82cdefea5 100644 --- a/tests/test_flyweight.py +++ b/tests/structural/test_flyweight.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.flyweight import Card +from patterns.structural.flyweight import Card class TestCard(unittest.TestCase): diff --git a/tests/test_proxy.py b/tests/structural/test_proxy.py similarity index 98% rename from tests/test_proxy.py rename to tests/structural/test_proxy.py index a296995b5..d8ab44fb5 100644 --- a/tests/test_proxy.py +++ b/tests/structural/test_proxy.py @@ -3,7 +3,7 @@ import sys from time import time import unittest -from structural.proxy import Proxy, NoTalkProxy +from patterns.structural.proxy import Proxy, NoTalkProxy if sys.version_info[0] == 2: from StringIO import StringIO diff --git a/tests/test_hsm.py b/tests/test_hsm.py index 71c439ae2..a03d1f590 100644 --- a/tests/test_hsm.py +++ b/tests/test_hsm.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from other.hsm.hsm import ( +from patterns.other.hsm.hsm import ( HierachicalStateMachine, UnsupportedMessageType, UnsupportedState, diff --git a/tests/test_outputs.py b/tests/test_outputs.py index 084571d32..c68b7120d 100644 --- a/tests/test_outputs.py +++ b/tests/test_outputs.py @@ -8,10 +8,10 @@ import pytest -from behavioral.visitor import main as visitor_main -from behavioral.visitor import OUTPUT as visitor_output -from behavioral.strategy import main as strategy_main -from behavioral.strategy import OUTPUT as strategy_output +from patterns.behavioral.visitor import main as visitor_main +from patterns.behavioral.visitor import OUTPUT as visitor_output +from patterns.behavioral.strategy import main as strategy_main +from patterns.behavioral.strategy import OUTPUT as strategy_output @pytest.mark.skipif(sys.version_info < (3,4), reason="requires python3.4 or higher")