-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding tests. Added tests for Singleton.
- Loading branch information
Showing
6 changed files
with
194 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# coding: utf-8 | ||
from singleton_tests import * | ||
from breadcrumbs_tests import * | ||
from flatpages_tests import * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# # coding: utf-8 | ||
|
||
# import os | ||
# from django.conf import settings | ||
# from django.test import TestCase | ||
|
||
# from breadcrumbs.breadcrumbs import (Breadcrumb, Breadcrumbs, | ||
# BreadcrumbsInvalidFormat, BreadcrumbsNotSet) | ||
|
||
# class BreadcrumbsTest(TestCase): | ||
|
||
# def setUp(self): | ||
# self.old_MIDDLEWARE_CLASSES = settings.MIDDLEWARE_CLASSES | ||
# breadcrumbs_middleware_class = 'breadcrumbs.middleware.BreadcrumbsMiddleware' | ||
# if breadcrumbs_middleware_class not in settings.MIDDLEWARE_CLASSES: | ||
# settings.MIDDLEWARE_CLASSES += (breadcrumbs_middleware_class,) | ||
# self.old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS | ||
# settings.TEMPLATE_DIRS = ( | ||
# os.path.join( | ||
# os.path.dirname(__file__), | ||
# 'templates' | ||
# ), | ||
# ) | ||
# # self.old_LOGIN_URL = settings.LOGIN_URL | ||
# # settings.LOGIN_URL = '/accounts/login/' | ||
|
||
# # now we start singleton | ||
# self.breadcrumbs = Breadcrumbs() | ||
|
||
# def tearDown(self): | ||
# settings.MIDDLEWARE_CLASSES = self.old_MIDDLEWARE_CLASSES | ||
# settings.TEMPLATE_DIRS = self.old_TEMPLATE_DIRS | ||
# # settings.LOGIN_URL = self.old_LOGIN_URL | ||
|
||
# # kill singleton | ||
# Breadcrumbs('a','/a') | ||
# Breadcrumbs('b','/b') | ||
# print Breadcrumbs() | ||
# self.breadcrumbs._drop_it() | ||
# del(self.breadcrumbs) | ||
# Breadcrumbs('c','/c') | ||
# print Breadcrumbs() | ||
|
||
# def test_breadcrumb_class(self): | ||
# b = Breadcrumb("Home", "/") | ||
# self.assertEqual(b.name, "Home") | ||
# self.assertEqual(b.url, "/") | ||
|
||
# def test_breadcrumbs_singleton(self): | ||
# brd = Breadcrumbs() | ||
# brd('a', '/a/') | ||
# brd('b', '/b/') | ||
|
||
|
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# coding: utf-8 | ||
|
||
from django.test import TestCase | ||
|
||
from breadcrumbs.breadcrumbs import Singleton | ||
|
||
|
||
class Foo(Singleton): | ||
""" | ||
Class used in singleton tests | ||
""" | ||
pass | ||
|
||
|
||
class SingletonTest(TestCase): | ||
|
||
def test_singleton(self): | ||
""" | ||
Test singleton implementation with values | ||
""" | ||
a = Foo() | ||
a.attr_1 = 1 | ||
|
||
b = Foo() | ||
|
||
self.assertEqual(b.attr_1, 1) | ||
self.assertTrue(a is b, "'a' isn't 'b', Singleton not works") | ||
|
||
def test_singleton_destruction(self): | ||
""" | ||
Test singleton imsinplementation with values and than destroy it | ||
""" | ||
a = Foo() | ||
id_a = id(a) | ||
a.attr_1 = 1 | ||
|
||
b = Foo() | ||
id_b = id(b) | ||
|
||
self.assertEqual(id_a, id_b) | ||
self.assertEqual(b.attr_1, 1) | ||
self.assertTrue(a is b, "'a' isn't 'b', Singleton not works") | ||
|
||
a._drop_it() | ||
|
||
c = Foo() | ||
id_c = id(c) | ||
self.assertNotEqual(id_a, id_c) | ||
self.assertNotEqual(getattr(c,'attr_1',None), 1) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/usr/bin/env python | ||
|
||
import os, sys | ||
|
||
from django.conf import settings | ||
|
||
|
||
if not settings.configured: | ||
settings_dict = dict( | ||
INSTALLED_APPS=( | ||
'django.contrib.contenttypes', | ||
'django.contrib.sites', | ||
'django.contrib.flatpages', | ||
'breadcrumbs', | ||
), | ||
DATABASES={ | ||
"default": { | ||
"ENGINE": "django.db.backends.sqlite3" | ||
} | ||
}, | ||
) | ||
|
||
settings.configure(**settings_dict) | ||
|
||
|
||
def runtests(*test_args): | ||
|
||
if not test_args: | ||
test_args = ['breadcrumbs'] | ||
|
||
# try to set more used args to django test | ||
test_kwargs = { | ||
'verbosity': 1, | ||
'noinput': False, | ||
'failfast': False, | ||
} | ||
for i,arg in enumerate(sys.argv): | ||
if arg.startswith('-v'): | ||
_value = arg.replace('-v','') | ||
if len(_value): | ||
test_kwargs['verbosity'] = int(_value) | ||
else: | ||
test_kwargs['verbosity'] = int(sys.argv[i+1]) | ||
if arg == '--noinput': | ||
test_kwargs['noinput'] = True | ||
if arg == '--failfast': | ||
test_kwargs['failfast'] =True | ||
|
||
parent = os.path.dirname(os.path.abspath(__file__)) | ||
sys.path.insert(0, parent) | ||
|
||
from django.test.simple import DjangoTestSuiteRunner | ||
failures = DjangoTestSuiteRunner( | ||
interactive=True, **test_kwargs).run_tests(test_args) | ||
sys.exit(failures) | ||
|
||
|
||
if __name__ == '__main__': | ||
runtests() |