diff options
| author | Michael Trier <mtrier@gmail.com> | 2009-07-27 02:12:15 +0000 |
|---|---|---|
| committer | Michael Trier <mtrier@gmail.com> | 2009-07-27 02:12:15 +0000 |
| commit | 34aaabf7ea18af8e8a7721238b5bba00e3532c4c (patch) | |
| tree | e1073f8dc9a4b1b643e79a658b00a09c7da4d569 | |
| parent | 73554aa4fa60459cd949ca8ac690ac0746a7c445 (diff) | |
| download | sqlalchemy-34aaabf7ea18af8e8a7721238b5bba00e3532c4c.tar.gz | |
Added in Examples into the test suite so they get exercised regularly. Cleaned up some deprecation warnings in the examples.
| -rw-r--r-- | CHANGES | 5 | ||||
| -rw-r--r-- | examples/__init__.py | 0 | ||||
| -rw-r--r-- | examples/adjacencytree/__init__.py | 0 | ||||
| -rw-r--r-- | examples/association/__init__.py | 0 | ||||
| -rw-r--r-- | examples/collections/__init__.py | 0 | ||||
| -rw-r--r-- | examples/custom_attributes/__init__.py | 0 | ||||
| -rw-r--r-- | examples/derived_attributes/__init__.py | 0 | ||||
| -rw-r--r-- | examples/dynamic_dict/__init__.py | 0 | ||||
| -rw-r--r-- | examples/elementtree/__init__.py | 0 | ||||
| -rw-r--r-- | examples/elementtree/pickle.py | 7 | ||||
| -rw-r--r-- | examples/graphs/__init__.py | 0 | ||||
| -rw-r--r-- | examples/nested_sets/__init__.py | 0 | ||||
| -rw-r--r-- | examples/pickle/__init__.py | 0 | ||||
| -rw-r--r-- | examples/pickle/custom_pickler.py | 8 | ||||
| -rw-r--r-- | examples/poly_assoc/__init__.py | 0 | ||||
| -rw-r--r-- | examples/polymorph/__init__.py | 0 | ||||
| -rw-r--r-- | examples/polymorph/polymorph.py | 2 | ||||
| -rw-r--r-- | examples/postgis/__init__.py | 0 | ||||
| -rw-r--r-- | examples/query_caching/__init__.py | 0 | ||||
| -rw-r--r-- | examples/sharding/__init__.py | 0 | ||||
| -rw-r--r-- | examples/vertical/__init__.py | 0 | ||||
| -rw-r--r-- | test/ex/__init__.py | 0 | ||||
| -rw-r--r-- | test/ex/test_examples.py | 46 |
23 files changed, 65 insertions, 3 deletions
@@ -69,6 +69,11 @@ CHANGES - Declarative will raise an informative exception if __table_args__ is passed as a tuple with no dict argument. Improved documentation. [ticket:1468] + +- test + - Added examples into the test suite so they get exercised + regularly and cleaned up a couple deprecation warnings. + 0.5.5 ======= diff --git a/examples/__init__.py b/examples/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/__init__.py diff --git a/examples/adjacencytree/__init__.py b/examples/adjacencytree/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/adjacencytree/__init__.py diff --git a/examples/association/__init__.py b/examples/association/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/association/__init__.py diff --git a/examples/collections/__init__.py b/examples/collections/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/collections/__init__.py diff --git a/examples/custom_attributes/__init__.py b/examples/custom_attributes/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/custom_attributes/__init__.py diff --git a/examples/derived_attributes/__init__.py b/examples/derived_attributes/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/derived_attributes/__init__.py diff --git a/examples/dynamic_dict/__init__.py b/examples/dynamic_dict/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/dynamic_dict/__init__.py diff --git a/examples/elementtree/__init__.py b/examples/elementtree/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/elementtree/__init__.py diff --git a/examples/elementtree/pickle.py b/examples/elementtree/pickle.py index 220bb2295..2176512cf 100644 --- a/examples/elementtree/pickle.py +++ b/examples/elementtree/pickle.py @@ -26,12 +26,17 @@ from xml.etree import ElementTree engine = create_engine('sqlite://') meta = MetaData(engine) +# setup a comparator for the PickleType since it's a mutable +# element. +def are_elements_equal(x, y): + return x == y + # stores a top level record of an XML document. # the "element" column will store the ElementTree document as a BLOB. documents = Table('documents', meta, Column('document_id', Integer, primary_key=True), Column('filename', String(30), unique=True), - Column('element', PickleType) + Column('element', PickleType(comparator=are_elements_equal)) ) meta.create_all() diff --git a/examples/graphs/__init__.py b/examples/graphs/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/graphs/__init__.py diff --git a/examples/nested_sets/__init__.py b/examples/nested_sets/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/nested_sets/__init__.py diff --git a/examples/pickle/__init__.py b/examples/pickle/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/pickle/__init__.py diff --git a/examples/pickle/custom_pickler.py b/examples/pickle/custom_pickler.py index 79a8b3fa3..a02b708e5 100644 --- a/examples/pickle/custom_pickler.py +++ b/examples/pickle/custom_pickler.py @@ -68,7 +68,13 @@ class Foo(object): class Bar(object): def __init__(self, value): self.data = value - + + def __eq__(self, other): + if not other is None: + return self.data == other.data + return NotImplemented + + mapper(Foo, foo_table, extension=MyExt()) mapper(Bar, bar_table) diff --git a/examples/poly_assoc/__init__.py b/examples/poly_assoc/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/poly_assoc/__init__.py diff --git a/examples/polymorph/__init__.py b/examples/polymorph/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/polymorph/__init__.py diff --git a/examples/polymorph/polymorph.py b/examples/polymorph/polymorph.py index ea56ffed1..60ef98f57 100644 --- a/examples/polymorph/polymorph.py +++ b/examples/polymorph/polymorph.py @@ -66,7 +66,7 @@ mapper(Company, companies, properties={ 'employees': relation(Person, lazy=False, backref='company', cascade="all, delete-orphan") }) -session = create_session(echo_uow=False) +session = create_session() c = Company(name='company1') c.employees.append(Manager(name='pointy haired boss', status='AAB', manager_name='manager1')) c.employees.append(Engineer(name='dilbert', status='BBA', engineer_name='engineer1', primary_language='java')) diff --git a/examples/postgis/__init__.py b/examples/postgis/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/postgis/__init__.py diff --git a/examples/query_caching/__init__.py b/examples/query_caching/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/query_caching/__init__.py diff --git a/examples/sharding/__init__.py b/examples/sharding/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/sharding/__init__.py diff --git a/examples/vertical/__init__.py b/examples/vertical/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/examples/vertical/__init__.py diff --git a/test/ex/__init__.py b/test/ex/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/test/ex/__init__.py diff --git a/test/ex/test_examples.py b/test/ex/test_examples.py new file mode 100644 index 000000000..c31b21e76 --- /dev/null +++ b/test/ex/test_examples.py @@ -0,0 +1,46 @@ +from sqlalchemy.test import * +import os, re + + +def find_py_files(dirs): + for dn in dirs: + dn = os.path.abspath(dn) + for root, dirs, files in os.walk(dn): + for r in '.svn', 'CVS', '.git', '.hg': + try: + dirs.remove(r) + except ValueError: + pass + + pyfiles = [fn for fn in files if fn.endswith('.py')] + if not pyfiles: + continue + + # Find the root of the packages. + packroot = root + while 1: + if not os.path.exists(os.path.join(packroot, '__init__.py')): + break + packroot = os.path.dirname(packroot) + + for fn in pyfiles: + yield os.path.join(root[len(packroot)+1:], fn) + +def filename_to_module_name(fn): + if os.path.basename(fn) == '__init__.py': + fn = os.path.dirname(fn) + return re.sub('\.py$', '', fn.replace(os.sep, '.')) + +def find_modules(*args): + for fn in find_py_files(args or ('../examples',)): + yield filename_to_module_name(fn) + +def check_import(module): + __import__(module) + + +class ExamplesTest(TestBase): + def test_examples(self): + for module in find_modules(): + check_import.description = module + yield check_import, module |
