testing all inheritances/references between 3 klasses A,B,C
several kinds of errors: - wrong query: SQLError: (OperationalError) no such column: pu_b.linkB_id
-
wrong type of object being loaded via getby_id, or lazy from another obj; (gets C instead of B; C inhs B inhs A)
-
some circular dep is detected on concrete mappers, which i cannot see why. C inh B, B inh A (all concrete); C.linkA->B; B.linkB->C; B.linkA->B; A.linkA->B C.linkA/B/C, B.linkA are post-update.
FlushError: Circular dependency detected [ C( name=cc dataC=mc dataB=None linkA=>B/idNone/ben linkC=None linkB=None), B( linkB=>C/idNone/cc linkA=>B/idNone/ben name=ben dataB=gun ) ), ( B( linkB=>C/idNone/cc linkA=>B/idNone/ben name=ben dataB=gun ), C( name=cc dataC=mc dataB=None linkA=>B/idNone/ben linkC=None linkB=None) ), ( B( linkB=>C/idNone/cc linkA=>B/idNone/ben name=ben dataB=gun ), A( linkA=>B/idNone/ben name=anna ) )]( ()
Comments (7)
-
Account Deleted -
Account Deleted (original author: sdobrev) - wrong query is now gone - i've fixed the circ.dependency by propagating a post_update=True to any of the relation's incarnations (which are manualy copied for concrete inhereitances)
so 2 kinds of errors remains. Both about B(A) C(B) inheritance
-
a lazy link is not loaded. See abc-inh-t.py - one case is ok, another one (with less links!) is not. This is table-inheritance.
-
a lazy-link of type B loads the C of same id. see abc-inh-2.py; all cases fail
There's one more, a link is loaded as wrong class with right prop-values or vice-versa - but it seems my own problem, can't reproduce as plain SA.
-
-
Account Deleted - attached abc-inh.tbz
(original author: sdobrev) latest cases
-
repo owner - marked as major
-
repo owner - changed component to orm
-
repo owner abc-inh-t.py passes on latest trunk, abc-inh-2.py fails. by the way, using "me" for "self" is extremely unpythonic.
-
repo owner - changed status to resolved
svilen's thousands of tests are passing for 0.4 so closing this
- Log in to comment
(original author: sdobrev) The actual test-combinator and the results (output/generated src) can be found at http://linuxteam.sistechnology.com/o2rm/sawrap0201.tar.bz2 http://linuxteam.sistechnology.com/o2rm/allABC-out-0201.tbz it is using the sawrap, and the .tbz contains lots of redundant stuff, sorry.
run as ..../sawrap/tests/ > PYTHONPATH=$PYTHONPATH:.. py test_ABC_inh_ref_all.py doC eager generate=one,failed This will run everything - add 'dummy' to see how many cases (~13300); and will eventualy run out of memory i split them by running with Clinks=None then with Clinks=A; Clinks=A1, B B1 C C1 - these are more manageable sizes. Run with -h fore help