Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Jul 2016 15:30:07 +0200] rev 11448
[test] Avoid usage of lgc.testlib TestCase in unittest_cwconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jul 2016 13:59:47 +0200] rev 11447
[test] Move setup of spa2rql tests into setUpClass method
Thus avoiding cryptic errors upon unittest discovery.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jul 2016 20:08:48 +0200] rev 11446
[schema] Set CubicWebSchemaLoader's extrapath using config eponymous property
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 16 Aug 2016 14:26:41 +0200] rev 11445
[doc] Document change of instances location in virtualenv installation
Closes #14789440.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 16 Aug 2016 14:16:10 +0200] rev 11444
[cwconfig] Do not override user-defined CW_MODE in virtualenv setup
And thus consider `_forced_mode` first.
Related to #14789440.
David Douard <david.douard@logilab.fr> [Fri, 22 Jul 2016 19:02:52 +0200] rev 11443
Added tag 3.22.4, debian/3.22.4-1, centos/3.22.4-1 for changeset 92db0bb8e26d
David Douard <david.douard@logilab.fr> [Fri, 22 Jul 2016 18:26:17 +0200] rev 11442
[pkg] remove .dev0 from version
David Douard <david.douard@logilab.fr> [Thu, 21 Jul 2016 21:03:25 +0200] rev 11441
[pkg] 3.22.4
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 06 Jul 2016 20:14:55 +0200] rev 11440
[session] Ensure access to rql varmaker always mark the session as dirty
When one accesses the rql_varmaker, that's usually to use it. The pb was that when
the varmaker was already in page's data (which is stored as session data),
session storage such as redis won't see that the session data is dirty and has
to be stored back at the end of the request.
To fix this, systematically call set_page_data.
(grafted from 3432f0e2540d)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 00:42:40 +0100] rev 11439
[test] fix test_printable_value_bytes with current pygments
An empty span was added in
https://bitbucket.org/birkenfeld/pygments-main/commits/164574c13533195a555181a2b9c685fea2470403
(grafted from 74b04a88d28a)
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:30:10 +0200] rev 11438
[webctl] set uid of file produced by gen-static-datadir (closes #11298794)
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:54:59 +0200] rev 11437
[webconfig] ensure uicache content has correct uid (related to #11298794)
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:50:48 +0200] rev 11436
[cwconfig] add the CubicWebConfiguration.ensure_uid_directory() method (related to #11298794)
that recursively enforce uid on files.
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:26:20 +0200] rev 11435
[cwconfig] extract uid file setting code from check_writeable_uid_directory (related to #11298794)
into an ensure_uid() method
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 19 Jul 2016 15:53:58 +0200] rev 11434
[web] Fix bug with usage of os.rename under windows environment
In 7c386161ebd6 we removed cache handling from property sheet and introduced
usage of a tempfile + os.rename to get atomic generation of files. The pb is
that this is not portable, since under windows os.rename will raise an exception
if the file already exists (because there is no way to write a file atomatically
in such case).
This kind of thing should be out of the CW scope anyway, so implements a quick &
dirty fix in the mean time.
Closes #14214794
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 06 Jul 2016 20:28:51 +0200] rev 11433
[migration] More resilient migration script
Query the information schema to retrieve existing constraint (primary key and
unique) and drop them.
Thus don't use anymore DROP CONSTRAINT IF EXISTS (not implemented by e.g. old
versions of sqlserver). To do so a missing DISTINCT was necessary to avoid
duplicates.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 06 Jul 2016 20:14:55 +0200] rev 11432
[session] Ensure access to rql varmaker always mark the session as dirty
When one accesses the rql_varmaker, that's usually to use it. The pb was that when
the varmaker was already in page's data (which is stored as session data),
session storage such as redis won't see that the session data is dirty and has
to be stored back at the end of the request.
To fix this, systematically call set_page_data.
David Douard <david.douard@logilab.fr> [Wed, 20 Jul 2016 09:40:04 +0200] rev 11431
typo
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 20 Jul 2016 09:21:51 +0200] rev 11430
[native] Use cnx.system_sql instead of doexec method in syntax_tree_search
The latter handles connection issues and tries to reconnect. Method
syntax_tree_search appears to be called from quite a few place where it seems
useful to be resilient to connection issues (authentication for instance).
This reconnection logic appears to have disappeared at some point when working
on https://www.cubicweb.org/2919309. Could not find the exact reason though...
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 20 Jul 2016 09:09:34 +0200] rev 11429
Remove usage of cnx.ensure_cnx_set context manager
It has been deprecated since 3.21, no reason to keep using it internally.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Fri, 26 Jun 2015 10:26:00 +0200] rev 11428
[hooks/test/synschema] remove an unneeded skipTest.
Related to #5557633.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 19 Jul 2016 10:47:29 +0200] rev 11427
[test] Check retcode of subprocesses in devctl tests
And display decoded stdout in case of failure.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 20 Jul 2016 17:58:49 +0200] rev 11426
merge 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Jul 2016 13:40:50 +0200] rev 11425
[pkg] Bump version to 3.24.0.dev0
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Jun 2016 10:35:22 +0200] rev 11424
[pkg] Drop NO_SETUPTOOLS option
setuptools is the defacto standard nowadays. The only place where
NO_SETUPTOOLS option was used is during packaging (RPM, Debian) and even in
this context, it seems that setuptools is the way to go
(see https://wiki.debian.org/Python/LibraryStyleGuide).
David Douard <david.douard@logilab.fr> [Tue, 12 Jul 2016 12:21:41 +0200] rev 11423
[debian] update cubicweb-dev.lintian-overrides
cubicweb/skeleton/debian/rules.tmpl is now cubicweb/skeleton/debian/rules
prevent lintian from complaining
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:27:19 +0200] rev 11422
[pkg] Properly export data files in setup.py and adjust "newcube" test
With the new package layout (everything under "cubicweb" package), the custom
install_lib rule which makes use of include_dirs defined in __pkginfo__.py did
not prepend the package name to source directories to be copied. Fixing this.
Also, in setup.py's export() function, the destination directories' path to be
created during source tree walk was wrong.
All this makes cubicweb/skeleton directory (which is not a package) properly
installed by setup.py.
The test in cubicweb/devtools/test/unittest_devctl.py wasn't properly
implemented because it used an installation of cubicweb in "develop" mode
which shadows such packaging issues. Also it used "python -m cubicweb" instead
of directly "cubicweb-ctl" and the former appears to fall back to using the
cubicweb package *from sources* instead of the installed one.
Now that this test runs against the installed version of cubicweb, fix
MANIFEST.in to include tox.ini files (cubicweb's and skeleton's) as this is
expected from the test.
Closes #14127941.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 10:44:05 +0200] rev 11421
[pkg] Handle verbose option in setup.py's export function
Make debugging easier.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 10:20:33 +0200] rev 11420
[pkg] Drop unused EMPTY_FILE global variable
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:00:38 +0200] rev 11419
[tox] Do not install package in "develop"
This might shadow so packaging issues.
And user can still pass --develop to tox.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:02:14 +0200] rev 11418
[pkg] Bump version to 3.23.2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 09:59:18 +0200] rev 11417
pep8 bits
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 10:17:42 +0200] rev 11416
[schema] Add a method on yams constraints to compute its unique name
used to identify it in the DB backend.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 10:17:14 +0200] rev 11415
[migration] Test and fix case of addition of an attribute with some serialized constraint
It was crashing on attempt to remove an unexisting constraint. This code may be
removed safely as it's expected to be handled by the constraint removal hook.
Notice that adding a vocabulary on shortpara makes yams change the varchar max
size. This is arguable but not the point of this test, so simply adapt the max
size defined in the schema coherently so we don't have to bother with that at
this point.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 07 Jul 2016 14:10:45 +0200] rev 11414
[test] Add a migration test for update of a static vocabulary constraint
This is a constraint serialized to be checked by the DB backend, hence ensure
the old constraint is dropped and the new one is created.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 13:42:16 +0200] rev 11413
[schema2sql] Avoid "parsing" SQL statements for database initialization
A big SQL string was generated, then splitted. This caused bug if some value in
the schema (eg vocabulary, default) contained the separator (';').
To properly fix this, yield each individual statement instead of generating a
string.
Closes #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 11:18:01 +0200] rev 11412
[schema2sql] Drop most of the DB DROP related code
This code is dead for a while, it has been superseded by
`sql_drop_all_user_tables`.
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 11:00:08 +0200] rev 11411
[hooks] Use already imported module alias
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 13 Jul 2016 12:18:32 +0200] rev 11410
[schema2sql] Rename as_sql to constraint_value_as_sql
which is easier to grasp independantly of the context.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 13 Jul 2016 12:17:37 +0200] rev 11409
[schema2sql] Drop unused indent argument on aschema2sql
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 13:26:36 +0200] rev 11408
[schema2sql] More docstrings and minor API improvements
Along the way, renamed local `column` variable to `attr` where we're NOT manipulating a DB
column name but a schema attribute.
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 10:47:03 +0200] rev 11407
[schema2sql] inline eschema_attrs method
* not a public API
* doesn't makes things easier to grasp
-> useless
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 13:25:43 +0200] rev 11406
[schema2sql] Give a rdef to check_constraint
This simplifies the API.
Related to #14050899
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 18:08:06 +0200] rev 11405
merge 3.20.16 in 3.22
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 16:13:12 +0200] rev 11404
merge 3.20.16 in 3.21
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 15:59:02 +0200] rev 11403
Added tag 3.20.16, debian/3.20.16-1, centos/3.20.16-1 for changeset e60a8e5d29ef
David Douard <david.douard@logilab.fr> [Tue, 12 Jul 2016 12:29:29 +0200] rev 11402
[debian] add a lintian override for source-is-missing about jquery.flot.js
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 12:49:19 +0200] rev 11401
[pkg] 3.20.16
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 12:47:28 +0200] rev 11400
[dataimport] fix count_lines function (closes #14407650)
ensure i allways exists whatever f content is
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 13:50:56 +0200] rev 11399
[captcha] improve a bit the redability of generated captcha images (closes #13500378)
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 13:56:40 +0200] rev 11398
3.20 branch
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 29 Jun 2016 15:07:55 +0200] rev 11397
merge 3.23 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 29 Jun 2016 13:52:25 +0200] rev 11396
Added tag 3.23.1, centos/3.23.1-1, debian/3.23.1-1 for changeset 8f035d5d5953
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 29 Jun 2016 13:51:25 +0200] rev 11395
prepare 3.23.1
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Jun 2016 11:06:25 +0200] rev 11394
[debian] Adjust symlink to cubicweb package so that documention builds fine
Broken since source tree re-organization.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Jun 2016 09:12:02 +0200] rev 11393
[dataimport] Restore handling of Binary in ExtEntity's values
Broken since 62a7100d774b.
Closes #13973741.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 15:02:04 +0200] rev 11392
[tox] Ensure virtualenv's python is used to build the documentation
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 15:01:40 +0200] rev 11391
[doc] Reference 3.23 page in changelog
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 15:02:04 +0200] rev 11390
[tox] Ensure virtualenv's python is used to build the documentation
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 14:17:19 +0200] rev 11389
Backed out changeset b288debc6736
Only superusers can set lc_messages variable. This prevents connection in many
cases.
Closes #14010345.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 13:51:58 +0200] rev 11388
Merge with 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 13:08:52 +0200] rev 11387
[pkg] Bump version to 3.22.4.dev0
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 09:45:46 +0200] rev 11386
Added tag 3.23.0, centos/3.23.0-1, debian/3.23.0-1 for changeset 4b07f2a79021
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 09:12:00 +0200] rev 11385
[doc] Fix symlinks of sphinx theme images
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 17:45:10 +0200] rev 11384
Added tag 3.23.0, centos/3.23.0-1, debian/3.23.0-1 for changeset 93b0f836cb07
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 17:18:57 +0200] rev 11383
[debian] Move python-unittest2 >= 0.7.0 as runtime dependency
It seems to me that this is not used during Debian package build (tests are
not run), but should be needed at runtime with the cubicweb-dev package.
Also, at the moment, we have no pbuilder setting with this package available
and it blocks the release.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 15:43:13 +0200] rev 11382
Symlink __pkginfo__.py at root
Maybe this will make apycot work again...
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 13:35:58 +0200] rev 11381
[3.23] More release notes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 12:21:48 +0200] rev 11380
i18n update
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 11:12:36 +0200] rev 11379
[doc/changes] CubicWebTC.set_description no longer available
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 24 Jun 2016 11:50:31 +0200] rev 11378
Add some release notes
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 16:29:03 +0200] rev 11377
[pkg] Version 3.23.0
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 10:25:50 +0200] rev 11376
[pkg] Bump yams version in cubicweb-common Debian package
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 16:11:00 +0200] rev 11375
[tox] Drop yams from dev-requirements.txt
Yams 0.44.0 got released.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 15:52:04 +0200] rev 11374
Merge with 3.22
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 15:48:39 +0200] rev 11373
Merge with 3.21
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 07:44:35 +0200] rev 11372
backport 3.21 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 07:42:30 +0200] rev 11371
backport 3.20 changes
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 08:53:21 +0200] rev 11370
[sobjects] Drop custom unique constraint checks in user registration service
This constraints (on unique CWUser's login and EmailAddress's login) are
handled by the backend.
This follows "[hooks/integrity] kill CheckUniqueHook".
Extend test for the ValidationError along the way.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 11:30:10 +0200] rev 11369
[test] Add a test for user registration unicity constraint on email
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 11:27:43 +0200] rev 11368
[test] Clarify user registration service tests
* split permissions test appart
* avoid usage of internal_cnx as this does not seem need
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 11:05:31 +0200] rev 11367
[test/hooks] pep8 and unittest.main instead in unittest_hooks.py
Julien Cristau <julien.cristau@logilab.fr> [Mon, 13 Apr 2015 14:34:11 +0200] rev 11366
[hooks/integrity] kill CheckUniqueHook
It's the backend's job.
The noticeable consequence (as can be seen in tests updated here) is that
error message are a bit less user-friendly.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 15:10:24 +0200] rev 11365
[migration] drop identity_relation if it exists
It has been generated erroneously for a while, then fixed but not properly deleted from old
databases.
Don't use IF EXISTS for sqlserver compat.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 14:35:43 +0200] rev 11364
[migration] Reserialize all constraints since yams introduce new JSON serializing format
So we may drop support for older format in yams at some point.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 23 Jun 2016 15:45:30 +0200] rev 11363
[migration] Add IF EXISTS on DROP CONSTRAINT
problem encountered on migration of a legacy database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 18:00:00 +0200] rev 11362
[schema sync] Rename index when an entity type is renamed
So we may still find them later using their expected name, and avoid collisions.
Closes #13822045
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 17 Jun 2016 13:26:13 +0200] rev 11361
[c-c] Add a command to check database index
List indices expected by the schema but not in the database and vice-versa
Closes #13822027
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 07:57:13 +0200] rev 11360
[sql gen] Control size of index name using an md5 hash
When using concatenation of table and column, we may hit the backend size limit
on index names, which results on truncated name (64 for postgres). Then we may
have conflict or be unable to find expected index on later synchronization
attempt.
This is done by monkeypatching lgdb for now to avoid dependancy problems.
Unique and primary key indices of entity types handling is left to the backend,
as they are not explicitly named.
See https://www.logilab.org/ticket/4789189
Closes #13821949
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 17:59:43 +0200] rev 11359
[sql gen] Explicitly name unique index
This patch hotfix logilab database for https://www.logilab.org/6662663 and fix
database creation to stop using UNIQUE in the table schema but rather create the
index later on, so its name is under control.
Also consider this change in schema synchronization hooks.
This is preliminary work related to #13822045
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 17:13:10 +0200] rev 11358
Update to yams 0.44 API
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 17:56:49 +0200] rev 11357
[test] Fix randomness in tests
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 07:56:51 +0200] rev 11356
[test] Drop unused import
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 22 Jun 2016 11:38:53 +0200] rev 11355
[serverctl] allow to sync multiple and all sources in source-sync command
Breaking change: by default source are not synced anymore if it is fresh
(regards to synchronization-interval). To get the previous behavior an option
--force is added.
Closes #13886467
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Jun 2016 15:57:17 +0200] rev 11354
[tox] Split migractions tests from server environment
These are the longest tests in this environment, so running them apart (in
parallel of others) would hopefully speed up the whole suite.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 23 Jun 2016 10:24:11 +0200] rev 11353
[dataimport] Fix rdef loopup in importer
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Jun 2016 16:23:11 +0200] rev 11352
[py3k] left-over unicode() in authobjs.py
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 10 May 2016 16:09:34 +0200] rev 11351
[server] Improve massive deletion of entities
sqlserver is limited on the "IN" array size and produce an error "The query
processor ran out of internal resources and could not produce a query plan".
The exact limitation is unclear but can occur with > 10000 item in the array.
See https://support.microsoft.com/en-us/kb/288095
Now we process the deletion by batch of 10000, some quick benchmarks show that
there is no performance impact:
delete_in(50000): 46.765182972
delete_in_batch(50000): 46.3242430687
delete_in(100000): 62.2969429493
delete_in_batch(100000): 61.8402349949
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:18:12 +0200] rev 11350
[hooks] Add a bunch of tests for session synchronization
And change unicode into six.text_type in authobjs.py spotted by new tests.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:17:23 +0200] rev 11349
[entities] Drop very old backward compat
from erudi time (even the standard datetime type didn't exist at that time)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:28:35 +0200] rev 11348
pep8 + docstrings and comments improvments
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 21:17:33 +0200] rev 11347
[server] some pep8 in rql2sql
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 17:51:11 +0200] rev 11346
[dataimport] Deprecate SQLGenObjectStore
Closes #10338709.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Feb 2016 17:51:12 +0100] rev 11345
[datafeed] attempt to acquire synchronization lock even when force is given
instead of the implementation in e717da3dc164, raise an error if the lock is
already grabbed and catch this error in the caller.
See discussion on https://www.cubicweb.org/revision/10790765
Closes #10451635
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 30 May 2016 17:41:12 +0200] rev 11344
[schema] Cache RQL expressions on schema loading
Add a mapping rql string to rql statement
Deserializing schema is ~36% faster with a lot (> 4000) expressions like those
generated by cubicweb-container.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 07 Jun 2016 12:04:21 +0200] rev 11343
[schema] Avoid parsing RQL expressions twice on schema loading
Kill full_rql (unnecessary)
Use snippet_rql rather than rqlst when possible
Don't access to rqlst cachedproperty from __init__
Deserializing schema is ~40% faster with a lot (> 4000) expressions like those
generated by cubicweb-container.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Jun 2016 10:22:37 +0200] rev 11342
[dataimport] Handle Bytes data in ExtEntity and convert them to Binary
Closes #13887276.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 18:11:40 +0200] rev 11341
[test] Avoid assertCountEqual in unittest_syncschema.py
It's not clear why this happens, but it seems that assertCountEqual does
strange things with unittest2 on Python 2 for equality comparison (trying to
sort constraint objects, even though BaseConstraint raise NotImplemented in
__lt__ from Yams 0.43).
So just avoid using it to get this test passing.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 11:01:16 +0200] rev 11340
[packaging] Bump version number
David Douard <david.douard@logilab.fr> [Mon, 29 Feb 2016 17:07:56 +0100] rev 11339
[web/session] make sure not to modify an inner value of session.data (closes #11217958)
When we modify a mutable value stored in the session's data (dict-like object)
we prevent an alternative session data handler (eg. pyramid-redis-session)
from detecting this update and synchronizing it in its backend (like redis).
David Douard <david.douard@logilab.fr> [Fri, 19 Feb 2016 12:11:31 +0100] rev 11338
[book] improve a bit the documentation of the database setup
also remove the MySQL section.
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 22 Dec 2015 11:26:49 +0100] rev 11337
[doc] add documentation for specializing translation of other cubes in an application cube
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 21 Aug 2015 11:25:50 +0200] rev 11336
[doc] fix some URLs (cs to test jenkins autobuild )
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 26 May 2016 15:37:28 +0200] rev 11335
[uicfg] Fix typo in set_fields_order
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 May 2016 17:40:31 +0200] rev 11334
[forms] We don't want cwjs-edition-cancel class on reledit's cancel button
Else it's bound to a js function that collides with onclick provided by reledit
code.
Closes #13120795
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 13:49:32 +0200] rev 11333
[test] Prefer unittest.main
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 13:49:15 +0200] rev 11332
[test] py.test related fix
We ought not import a concrete test case from a sibling module, else it ends up
partially initialized at some point and later raise assertion error in
setUpClass.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 02 Feb 2016 12:08:49 +0100] rev 11331
[dataimport] add a bit of extra-documentation on the massive store
about prepare_insert_relation limitation on inlined relation and lack of
full-text indexation.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 18:57:30 +0100] rev 11330
[dataimport] no need to call .keys()
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 17:50:05 +0100] rev 11329
[dataimport] drop massive store's flush_metadata method
This method handle a temporary table which sounds useless, and even buggy in
some cases (metadata for a single entity types will be only flushed once even if
flush is called several time). Instead, simply call the method-doing-the job
after entities have been inserted (and make it private along the way).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 02 Feb 2016 12:10:42 +0100] rev 11328
[dataimport] test and fix external source support for the massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 13:51:19 +0200] rev 11327
[dataimport] add new test for nohook store importing in a custom source
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 17:29:59 +0100] rev 11326
[dataimport] introduce usage of MetadataGenerator into the massive store
This allows more flexibility and code sharing w/ nohook store.
Closes #10338621
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:14:27 +0100] rev 11325
[dataimport] rename massive store's metagen_push_relation method
to _insert_meta_relation.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:14:55 +0100] rev 11324
[dataimport] meta_data -> metadata
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 16:08:08 +0100] rev 11323
[dataimport] use sql shortcut
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:16:47 +0100] rev 11322
[dataimport] move cwmassive_constraint temporary table handling to the PGHelper class
with consistent renaming and some rationalization to avoid doing things several
times and have code slightly easier to grasp.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:17:08 +0100] rev 11321
[dataimport] inline some methods of the massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 15:25:32 +0100] rev 11320
[dataimport] move everything related to the "URI handling" feature of the massive store together
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 15:13:39 +0100] rev 11319
[dataimport] test for a value is in a set and insertion in a set should live together
also inline some methods on the way, in the hope to make the public api clearer
at some point, and only put valuable values in those sets so we don't have to
endlessly test for consistency.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 15:08:16 +0100] rev 11318
[dataimport] use a single _initialized set instead of _entities / _rtypes
and rework a bit methods using them so that 'in' test and set insertion leave in
the same method.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:34:47 +0100] rev 11317
[dataimport] drop massive store etype to eid index
and fix potential problem with is_instance_of relation insertion in case where
the class of inserted entity has some (yams) parent.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:00:50 +0100] rev 11316
[dataimport] add a .schema shortcut attribute on the massive store
also rephrase a bit a method along the way
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 13:41:39 +0100] rev 11315
[dataimport] rework massive store's __init__
* _cnx is set by the parent class
* count_cwuri is not used
* group related things together
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:18:20 +0100] rev 11314
[dataimport] rework PGHelper class
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:18:44 +0100] rev 11313
[dataimport] flake8
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:02:31 +0100] rev 11312
[dataimport] enhance a bit sql queries readability
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:14:57 +0100] rev 11311
[dataimport] use IF EXISTS when possible
it's better than try/except and avoid potential concurrency problems.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 11:32:12 +0100] rev 11310
[dataimport] PGHelper should be responsible to retrieve the database schema
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 17:31:35 +0100] rev 11309
[dataimport] introduce a new MetadataGenerator to replace former MetaGenerator
with a similar-but-different API that will allow its usage by the massive store
(no more entity object manipulation), while making it a bit more flexible for
customization by subclasses (experience taken from client code).
Related to #10338621
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 16:37:17 +0200] rev 11308
[dataimport] Prefer now(pytz.utc) to utcnow
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 15:08:13 +0100] rev 11307
[dataimport] rename nohook store .source attribute
so it's clearly not the samething as metagenerator.source. Also add a bit of doc
along the way.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 11:17:31 +0100] rev 11306
[dataimport] make rql store test easier to read and test a few more thing, then reuse it to test nohook start which had no tests at all
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 21:59:34 +0100] rev 11305
[dataimport] remove useless assignment in massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 08:42:28 +0100] rev 11304
[dataimport] move eid attribution from the metagenerator back to the nohook store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 08:38:04 +0100] rev 11303
[dataimport] rephrase minor bits of the meta generator
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 15:25:36 +0200] rev 11302
[pkg] Depends on logilab-common >= 1.2.2
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 16:35:21 +0200] rev 11301
Merge with 3.22.3
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 14:13:54 +0200] rev 11300
[pkg] Depends on yams >= 0.43
RPM spec file and debian/control got updated previously.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 16:21:07 +0200] rev 11299
Added tag 3.22.3, debian/3.22.3-1, centos/3.22.3-1 for changeset b1e7de000536
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 15:32:51 +0200] rev 11298
[pkg] Version 3.22.3
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 13:45:12 +0200] rev 11297
[pkg] Depends on yams < 0.43
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 15:17:09 +0200] rev 11296
Define BASE_URL and DATA_URL js variables in the login template. Closes #13385185
Those are expected to be defined in almost every js files. They were not before
this patch because login form doesn't use the regular main template.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 10 Jun 2016 13:21:31 +0200] rev 11295
[web] Remove some unused imports in editforms
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 10 Jun 2016 13:21:13 +0200] rev 11294
Fix cancel action on deletion confirmation form
Currently crashed with RequestError: invalid action '__action_cancel'.
It's broken as of https://hg.logilab.org/master/cubicweb/rev/cb217b2b3
This fix is similar as the one done in
https://hg.logilab.org/master/cubicweb/rev/9f1c89e7426d
Closes #13521493
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 21:19:04 +0200] rev 11293
[rql2sql] Test and fix some case of sql generation
when an unstable variable (ie whose type change from one solution to another) is
used in an EXISTS node but belongs to an outer scope.
Closes #13518646.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 13:22:00 +0200] rev 11292
[test] Add missing os import in unittest_migractions.py
Dropped in ^ merge.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 15:04:14 +0200] rev 11291
backport 3.22 changes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Apr 2016 10:20:34 +0200] rev 11290
[entity] Make it possible to specify sorting terms in cw_related_rqlst method
Closes #12306543.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 17:45:16 +0200] rev 11289
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Unique was previously detected in a loop triggered only for String columns.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 17 Jun 2016 14:44:59 +0200] rev 11288
[server] some pep8 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 17:35:39 +0200] rev 11287
pep8 schema2sql
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 17:52:43 +0200] rev 11286
[migration] Drop custom "readfunc" for code.interact in shell
As the referenced bug http://bugs.python.org/issue1288615 got fixed in Python
2.6, this is no longer needed. Furthermore the implementation is not Python 3
compatible (raw_input, unicode).
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 09:41:24 +0200] rev 11285
[tox] Put development dependencies into a dev-requirements.txt file
The latter being sourced in tox.ini.
For now this contains references to hg repositories for some dependencies but
under normal circumstances it should only contain pytest.
This is useful when developping cubicweb itself without using tox but working
with a virtualenv so that one can simply do:
::
$ virtualenv --system-site-packages venv
$ . venv/bin/activate
$ pip install -r dev-requirements.txt
$ python setup.py develop
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 10:27:34 +0200] rev 11284
[py3k] Fix config-level comparison in "cubicweb-ctl create" command
dict.get -> None, and None cannot compare to an int in Python 3.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Jun 2016 09:19:38 +0200] rev 11283
[pkg] PEP8 fixes in __pkginfo__.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Jun 2016 09:17:06 +0200] rev 11282
[pkg] Drop "support" of unused subpackage_of option in setup.py
__pkginfo__ does not declare subpackage_of.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 17:09:11 +0200] rev 11281
Add missing import, eaten by previous merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 17:05:16 +0200] rev 11280
Only access once to _cw.message in the login form
else the first access may pop the message and the second won't get anything to
display. This works on default message implementation but doesn't on the
pyramid's one, leading to no message displayed on erroneous authentication
attempt, which is not very user friendly.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 15:53:01 +0200] rev 11279
backport 3.22 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 14:19:20 +0200] rev 11278
backport changes from 3.21
Alexandre Richardson <alexandre.richardson@logilab.fr> [Fri, 10 Jun 2016 16:45:20 +0200] rev 11277
[server,bfss] fix bfss migration test for python 3 (related #13519541)
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 10 Jun 2016 13:23:54 +0200] rev 11276
[pkg] Use io.open with utf-8 encoding to read long description from README
This forces decoding so that this is consistent between Python 2 and 3 as, in
Python 3, decoding which would occur anyways and may fail depending on the
environment locale settings.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 04 May 2016 23:52:36 +0200] rev 11275
[dataimport] order of ExtEntities should be irrelevant (closes #13117472)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 15:36:18 +0200] rev 11274
Test and fix "pickleability" of Binary objects
which has been recently broken while some cubes rely on this (eg fastimport).
Do some licensing/pep8 cleanup along the way.
Closes #13385274
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 07 Jun 2016 10:05:30 +0200] rev 11273
[server,bfss] fix storage migration when Bytes attributes is None (closes #13519541)
When a Bytes attributes is None before the BFSS storage migration,
the migration crashes. A Bytes attribute can be None, when the attribute
is not required and there is no default value. In this case, the attributes
should remained None after migration and no file is stored on the disk.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 25 May 2016 09:51:51 +0200] rev 11272
Let hg Ignore py.test's .cache directory
And drop rule for .svn along the way.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Apr 2016 08:59:53 +0200] rev 11271
[entity] Add a cw_related_rqlst method returning the RQL select node of cw_related method
This is useful if one wants to modify the query before execution.
A bit a PEP8 style fix in tests along the way.
Related to #12306543.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 17:05:39 +0200] rev 11270
[devtools] set .config in setUpClass instead of using a cache in a classproperty
This is much clearer and avoid problem with py.test introspection that triggered
creation and caching of the configuration before actual test execution. This
caused pb in unittest_postgres.PostgresStatementTimeoutTC where configuration
was built before module's setup, hence source configuration was missing
information about where to find the pg cluster.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 12:01:42 +0200] rev 11269
[devtools] Simplify test configuration's init
Specify module's __file__ instead of apphome. __file__ is saved on the class as
it will be used later (eg to find the proper pg cluster without relying on
shared dictionnary modifications).
This will require some tests update, but it should be less common in cubes than
in cubicweb itself.
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 11 Sep 2014 14:22:02 +0200] rev 11268
[web] Have the LoginController return 403 on failed auth (closes #11569950)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 11:32:23 +0200] rev 11267
[devtools] Drop old init_test_database backward compat
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 14:43:19 +0200] rev 11266
[devtools] show DeprecationWarning during test execution
They are not shown by default since python 2.7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 11:09:46 +0200] rev 11265
[devtools] deprecate usage of sources file for test
This is old support which clutters the code and should no more be used.
As this is rarely used (if it is) and test only, it feels ok to drop support at
once without a deprecation phase.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 13:07:21 +0200] rev 11264
[devtools] Set dumb value for postgres's db-host to avoid unexpected connection to a local server
Currently, if something goes wrong (eg config built before call to
startpgcluster) while a pg server is running on localhost, it may connect to
this server and run the test in there unexepectedly.
David Douard <david.douard@logilab.fr> [Wed, 25 May 2016 17:19:14 +0200] rev 11263
[ldapfeed] ldap3 do not raise an exception in case of failure of cnx.bind()
but return 'False' instead.
David Douard <david.douard@logilab.fr> [Wed, 25 May 2016 17:43:53 +0200] rev 11262
[test] add a test to ensure we get an AuthenticationError with ldapfeed
when using (correct login, wrong password) credentials
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Apr 2016 16:16:09 +0200] rev 11261
[entity] Exclude computed relations from Entity.copy_relations
Closes #12481591.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 10:51:33 +0200] rev 11260
[pkg] Set version to 3.22.2.dev0
So that cubes used in test dependencies do not install a released CubicWeb.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 12:05:29 +0200] rev 11259
[devtools] pep8 a bit package's __init__
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 17:57:43 +0200] rev 11258
[test/server] Only use configcls with statement timeout when needed
Other tests in PostgresFTITC class apparently do not make use of this
particular configuration.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 17:55:26 +0200] rev 11257
[server/test] Add an assertion in test_statement_timeout
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:58:39 +0200] rev 11256
[datafeed] minor cleanups to cwxml parser
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 23 Sep 2015 10:59:56 +0200] rev 11255
[datafeed] don't allow arbitrary kwargs on DatafeedParser initializer
else they will be handled nicely by appobject base class, while we rather want an
error in the case of a source parser (arguable).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:53:29 +0200] rev 11254
[datafeed] gives information about moved entities to the parser
Also, don't support anymore arbitrary parameters at parser initialization.
Related to #5414754
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:45:29 +0200] rev 11253
[datafeed] simplify SQL query used to retrieve information about entities from an external source
no need to join on cw_source
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:42:44 +0200] rev 11252
[datafeed] rename parser.sourceuris to source_uris
Its more readable. Also, uniformize related method and local identifier names.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Jun 2015 10:05:46 +0200] rev 11251
[datafeed] move process_urls to the parser
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 17:14:16 +0100] rev 11250
[tox] Use py.test to run tests
In unittest_rqlrewrite.py and repotest.py, rename utility functions so that
they are not considered as "test functions" by py.test.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 May 2016 14:21:21 +0200] rev 11249
[test] Fix devtools unittest_i18n when ran without pytest
There is currently some weird error, requiring both to hack cubicweb.__path__
and to stop using load_module_from_name to load the registry.
Introduce a dependency on to-be-released version of logilab common integrating
fix for https://www.logilab.org/ticket/6085650
Do some extra import cleanups along the way.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 14:48:23 +0100] rev 11248
[server] explicitly set postgres LC_MESSAGES variable to C on connection
We parse some error messages so we need them to be in English. It's not
clear to me exactly when that's not the case, but this fixes running
unittest_postgres' "test_constraint_validationerror" with py.test for
Sylvain.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 19 Mar 2015 21:19:52 +0100] rev 11247
[web] cleanup xmlrss view
Don't trigger exceptions unnecessarily, and add line breaks to the
output.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 14:01:35 +0100] rev 11246
[migration] add rollback when replace_eid_sequence_with_eid_numrange fails
If we get here, the current transaction is aborted, so if we are to
assume everything is fine and continue we need to rollback first.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 14:03:56 +0100] rev 11245
[migration] move CWComputedRType later
The ordering in this file is a mess, and things don't actually work this
way (when upgrading from 3.17).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 May 2016 09:18:56 +0200] rev 11244
docstring fix
David Douard <david.douard@logilab.fr> [Tue, 12 Apr 2016 10:35:06 +0200] rev 11243
[cwctl] make cwctl not depends on cubicweb.wsgi (closes #12210063)
cubicweb.wsgi may not be available at all on Debian.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 07 Oct 2015 18:24:49 +0200] rev 11242
[hooks/workflow] pass eids, not entities, from hooks to operations
Passing entity objects around runs the risk of getting out of date data
from caches.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 14:53:33 +0100] rev 11241
[web/httpcache] fix Last-Modified generation
time.mktime takes a time tuple in *local* time. We have an UTC datetime coming
from the last_modified method, which we were interpreting as local time,
leading to hilarity. Use calendar.timegm instead.
Add tests for Last-Modified generation of the 'download' and 'manage'
views.
Florent Cayré <florent.cayre@logilab.fr> [Wed, 04 May 2016 17:07:41 +0200] rev 11240
[forms] Fix edition of TZDatetime attributes
Parse the submitted web form values into a timezone-aware datetime
(by default, UTC) when such an attribute is edited. This is done using
an automatically-selected (by `web.formfield.guess_field`) field named
`TZDatetimeField`.
Closes #12666598.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Mon, 02 May 2016 17:14:43 +0200] rev 11239
[doc] fix abstract and example of data import
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sun, 01 May 2016 22:00:14 +0200] rev 11238
[doc] fix abstract of data import
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Apr 2016 12:39:08 +0200] rev 11237
[repository] drop remanescence of old multi-sources code
we don't use anymore this inputmap/varmap thing.
David Douard <david.douard@logilab.fr> [Mon, 09 May 2016 17:24:03 +0200] rev 11236
Added tag 3.20.15, debian/3.20.15-1, centos/3.20.15-1 for changeset 636a83e65870
David Douard <david.douard@logilab.fr> [Mon, 09 May 2016 17:05:14 +0200] rev 11235
[pkg] 3.20.15
David Douard <david.douard@logilab.fr> [Wed, 20 Apr 2016 14:43:48 +0200] rev 11234
[views] do not eat the self._cw.message in LogFormView (closes #12421177)
accessing self._cw.message now(?) eat the message, so don't call
"self._cw.message" twice.
David Douard <david.douard@logilab.fr> [Tue, 19 Apr 2016 13:57:12 +0200] rev 11233
[server] make InternalManager.name() return an empty string (closes #12418708)
Otherwise the notification emails sent via an internal_session never honor the
EMAIL.sender-name configuration option.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 17:10:08 +0100] rev 11232
[test/migractions] work around drop_cube not deleting final etypes
Closes #10096736
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 17:09:41 +0100] rev 11231
[hooks] deleting a final entity type shouldn't try dropping an sql table
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Apr 2016 09:10:17 +0200] rev 11230
[tox] Use a revision on proper branch for Yams
"default" is not good when some bug fix release suddenly comes out...
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Mar 2016 14:35:28 +0200] rev 11229
[webconfig] disable generate-staticdir by default
Its side effects mean it can be inconvenient, and using it requires
manual (web server) config changes anyway, so there's no reason it needs
to be enabled by default.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Mar 2016 15:24:17 +0100] rev 11228
[test] Skip test_deserialization_base (unittest_repository.SchemaDeserialTC)
See ticket #10096736.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Mar 2016 17:00:13 +0200] rev 11227
[devtools] drop unused DumbOrderedDict2 class
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Mar 2016 16:56:59 +0200] rev 11226
[devtools] fix sorting in ExecutionPlan._check_permissions on python3
Sort lists instead of dict_items objects to get predictable results.
With this change, unittest_querier.UtilsTC.test_preprocess_security
passes every time instead of once in a blue moon. Closes #11759133.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Mar 2016 13:55:29 +0100] rev 11225
[test] assertItemsEqual → assertCountEqual in unittest_repository.py
Julien Cristau <julien.cristau@logilab.fr> [Thu, 24 Mar 2016 09:43:25 +0100] rev 11224
merge 3.20.14 in 3.21 branch
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 18:08:47 +0100] rev 11223
Added tag 3.20.14, debian/3.20.14-1, centos/3.20.14-1 for changeset f66a4895759e
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 17:59:40 +0100] rev 11222
[pkg] 3.20.14
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 10:53:44 +0100] rev 11221
[tox] use master URL for yams repository
No need to clone from review. This should help get consistent results.
Laura Médioni <laura.medioni@logilab.fr> [Tue, 19 Jan 2016 16:11:16 +0100] rev 11220
[pylint] Avoid invalid-name on schema relation class names
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 20 Jan 2016 08:26:30 +0100] rev 11219
[pylint] more work on the pylint support
* uniformize usage of ClassDef and simplify related import
* don't insert in the ast a python function but an astroid representation of that function
* ignore __pkginfo__ file
* drop attr-rgx, variable-rgx and argument-rgx, put the name in good-names instead
* drop additional-builtins
* add cell_call to the list of methods for which we don't want 'abstract-method'
Laura Médioni <laura.medioni@logilab.fr> [Tue, 19 Jan 2016 14:07:59 +0100] rev 11218
[pylint] remove abstract-method warning
This kind of message is targeted:
"Method 'entity_call' is abstract in class 'EntityView' but is not overridden (abstract-method)"
For now, only "entity_call" and "render_body" are dealt with, the list can be extended.
Laura Médioni <laura.medioni@logilab.fr> [Tue, 19 Jan 2016 11:43:52 +0100] rev 11217
[pylint] upgrade pylintext plugin
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 19 Jan 2016 13:24:44 +0100] rev 11216
update and enhance pylintrc
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 11:56:32 +0100] rev 11215
[schema] use json to serialize constraints
Require yams 0.43: constraints are serialized to json, which means we
need to recreate the actual checks in the database on upgrade.
Temporary deps in tox.ini to pull respective changes in yams.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 17:59:10 +0100] rev 11214
[pkg] fix cubicweb.spec syntax
(grafted from 3309ddb970594cd54529f5c205d1ea5b5da4131e)
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 10:06:18 +0100] rev 11213
[pkg] Use Twisted < 16.0.0
We have some test failures with 16.0.0, such as:
- test_put_content (unittest_server.ETwistHTTPTC)
- test_base_url (unittest_httptest.TwistedCWAnonTC)
(grafted from 10c12f31d0fe38c2e8814176fc42bf2ea210efdf)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 17:59:10 +0100] rev 11212
[pkg] fix cubicweb.spec syntax
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 15:55:56 +0100] rev 11211
[cwconfig] Use imp.load_source instead of exec() to load site_cubicweb.py from apphome
Lets us return a module object and go back to the previous code in
CubicWebConfiguration._load_site_cubicweb.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Mar 2016 11:24:51 +0100] rev 11210
[cwconfig] Stop using lgc.modutils to load *config.py and *ctl.py files
Rémi Cardona <remi.cardona@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 13:53:03 +0100] rev 11209
[cwconfig] Stop using lgc.modutils to load site_cubicweb.py files
config.load_site_cubicweb function now takes a list of cubes (instead of
paths) and default to all known cubes.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 11:31:40 +0100] rev 11208
[test] Use a Popen in i18n tests
Instead of check_call, so that we clearly see the failure.
A bit of flake8 along the way.
Vladimir Popescu <vladimir.popescu@logilab.fr> [Tue, 06 May 2014 17:45:37 +0200] rev 11207
[forms] Fix HTableFormRenderer _render_fields method behavior when display_label is False.
Indeed, now the extra <tr><th>...</th></tr> are not inserted anymore unless
display_label is True.
Closes #3811325.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Tue, 17 Mar 2015 15:21:29 +0100] rev 11206
[connection] remove a dead counter
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 17:34:21 +0200] rev 11205
[session] drop .is_repo_in_memory
This is deader than a dead dog's bone buried down a blind alley off a
dead-end street in a ghost town.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Mar 2016 11:39:24 +0100] rev 11204
[session] drop session-as-a-context-manager
It made little sense in the 3.19 - session-as-cnx-bw-compat era, maybe.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Thu, 12 Jun 2014 18:37:29 +0200] rev 11203
[devtools/repotest] use the RepoAccess object
Quite better than playing tricks with the Repo._sessions.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Tue, 01 Jul 2014 18:25:20 +0200] rev 11202
[devtools] adapt stresstester to current APIs
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Mar 2016 12:11:18 +0100] rev 11201
[session] retire session.vreg
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 16:26:16 +0200] rev 11200
[session] fix super call in Connection.__init__
The vile hacks in test fixtures are fixed.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 15:30:16 +0200] rev 11199
[session,repo] remove last trace of "cnxprops"
Related to #1381328.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 10:06:18 +0100] rev 11198
[pkg] Use Twisted < 16.0.0
We have some test failures with 16.0.0, such as:
- test_put_content (unittest_server.ETwistHTTPTC)
- test_base_url (unittest_httptest.TwistedCWAnonTC)
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 Mar 2016 16:58:50 +0100] rev 11197
[web/views] stop using cwaction='cancel'
It's broken as of https://hg.logilab.org/master/cubicweb/rev/cb217b2b3
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 00:42:40 +0100] rev 11196
[test] fix test_printable_value_bytes with current pygments
An empty span was added in
https://bitbucket.org/birkenfeld/pygments-main/commits/164574c13533195a555181a2b9c685fea2470403
Aurelien Campeas <aurelien.campeas@logilab.fr> [Thu, 12 Jun 2014 15:54:44 +0200] rev 11195
[session, repository] deprecate repo.connect and move .close reponsibility to session object
Repository.new_session just returns a plain session object, and
`.connect` (which returns a sessionid) is deprecated.
For .close::
session.close() # done !
The session will bear the responsibility to call the "session_close"
event but that's better than the previous idiom::
repo.close(session.sessionid)
which involves both objects.
Related to #1381328.
Related to #2919309.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 14:11:47 +0100] rev 11194
[web/test] fix typo in doc string
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 19:00:09 +0100] rev 11193
[web/httpcache] send weak ETags
There's no way we can provide a strong validator in general (especially
considering how ETags are generated by the current EtagHTTPCacheManager
and EntityHTTPCacheManager). So mark our entity-tags as weak.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 04 Mar 2016 12:17:58 +0100] rev 11192
[server] print backend exception if we fail to execute an sql script
It's more useful to see
could not open extension control file "/usr/share/postgresql/9.4/extension/postgis.control": No such file or directory
rather than merely
-> ERROR, skipping /usr/share/cubicweb/cubes/postgis/schema/_ext.postgres.sql
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 Mar 2016 14:59:24 +0100] rev 11191
[cwctl] drop unnecessary admincnx call from 'shell'
The connection is done by the migration helper.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 07 Mar 2016 17:51:30 +0100] rev 11190
[serverctl] allow schema-diff when db and fs are not in sync
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 Jul 2014 16:33:08 +0200] rev 11189
[cwctl] remove networked remote shell
This was a dbapi leftover.
Related to #3933480.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 Mar 2016 14:30:21 +0100] rev 11188
[web/calendar] fix regression in previous changeset
"Enables css customization in CalendarView" was untested, and introduced a crash:
TypeError: not all arguments converted during string formatting
Laura Médioni <laura.medioni@logilab.fr> [Mon, 17 Mar 2014 15:21:47 +0100] rev 11187
Enables css customization in CalendarView
now a custom css class can be set on the calendar div (closes #3654043).
Alexandre Richardson <alexandre.richardson@logilab.fr> [Thu, 17 Sep 2015 12:47:39 +0200] rev 11186
refactor a bit breadcrumbs to ease overriding of the root's display
Julien Cristau <julien.cristau@logilab.fr> [Wed, 14 Jan 2015 13:35:22 +0100] rev 11185
Add migration helper function to delete entity types faster
Bypasses all hooks and (for now) ignores any composite relations.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 14 Mar 2016 15:38:03 +0100] rev 11184
[testlib] Import nocoverage from logilab.common.testlib
This depends on a change in logilab-common 1.2.0
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Mar 2016 21:28:44 +0100] rev 11183
[web/test] replace unicode with six.text_type
Some uses of unicode reappeared when merging changes from 3.19.14.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 18 Feb 2016 10:23:05 +0100] rev 11182
[devtools/testlib] Issue a RuntimeError when a generative tests is detected
Otherwise, generative tests *à la logilab-common* in CubicWebTC test cases
would silently not run (at least using logilab.common.pytest runner).
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:30:58 +0100] rev 11181
[devtools] stop using lgc.testlib.TestCase
It's become incompatible with unittest(2).TestCase due to generative
tests. Just keep the datadir/datapath and assertCountEqual bits in our
BaseTestCase.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Mar 2016 10:25:32 +0100] rev 11180
[test] Replace remaining generative tests by subtests
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 14 Mar 2016 18:15:09 +0100] rev 11179
[tox] Enable all applicable py34 environments
All except etwist.
Comes with a few tricks in tox.ini:
* add ``-e.`` to force installing of cubicweb in development because
dependency cubes would otherwise install cubicweb 3.22 (the latest release),
which is not python3 installable.
* "install" cubes/__init__.py because the file is not installed in
develop mode; maybe this file should be managed by cubes themselves...
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 17:01:42 +0100] rev 11178
[migration/3.10] fix AttributeError
'Connection' object has no attribute 'HOOKS_DENY_ALL'
Julien Cristau <julien.cristau@logilab.fr> [Mon, 07 Mar 2016 17:53:20 +0100] rev 11177
[server/sources] Fix authenticate on pre-3.10 database
When migrating from a pre-3.10 database, the CWSource entity type and
cw_source relation type are not known, but authenticate should still
work to be able to add them.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 17:11:17 +0100] rev 11176
[test] Add a test ensuring new cube built from skeleton is flake8-compliant
And make skeleton files actually flake8-compliant henceforth.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 25 Jan 2016 08:28:16 +0100] rev 11175
[skeleton] Ship a tox.ini file upon new cube
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Mar 2016 13:47:20 +0100] rev 11174
[web] fix headers on 304 responses (closes #11466875)
The response MUST include the following header fields:
[...]
- ETag and/or Content-Location, if the header would have been sent
in a 200 response to the same request
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
Unfortunately we weren't copying headers from what would have been the
200 response, but from the request.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 18:01:44 +0100] rev 11173
[web/httpcache] GMTOFFSET no longer exists
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Mar 2016 13:47:20 +0100] rev 11172
[web] fix headers on 304 responses (closes #11466875)
The response MUST include the following header fields:
[...]
- ETag and/or Content-Location, if the header would have been sent
in a 200 response to the same request
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
Unfortunately we weren't copying headers from what would have been the
200 response, but from the request.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 29 Feb 2016 12:32:52 +0100] rev 11171
[rset] fix infinite recursion introduced in c1eb5a676c80
The mechanism to avoid loops in c1eb5a676c80 "[rset] Always complete
attribute/relation caches in ResultSet.get_entity" breaks down: we would
loop forever if two entities that were already in the cache were linked
by a relation with ? or 1 cardinality in both directions. To avoid
that, keep a set of already-considered columns. Related to #9942503.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Feb 2016 10:02:03 +0100] rev 11170
pep8 unittest_application and unittest_formfields
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 12 Jan 2016 14:31:14 +0100] rev 11169
[rset] Always complete attribute/relation caches in ResultSet.get_entity
RQL queries are often designed to fill up the ORM's caches when fetching
entities out of the result set. Until now, if an entry already existed
in the entity cache, ResultSet.get_entity would return it unchanged,
not using the new ResultSet's contents to update the attribute cache,
breaking expectations (if the attributes are needed, they'd then be
fetched later one at a time, one entity at a time), resulting in loads
of DB accesses.
So we change ResultSet.get_entity so that:
* if the entity is already cached and has been instantiated from the
same rset, it is returned as-is (to avoid loops)
* if the entity is not yet cached, it is instantiated
* if the entity is cached via another rset, its attribute/relation
caches are completed
Closes #9942503
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 12 Jan 2016 17:36:28 +0100] rev 11168
[rset] refactoring of _build_entity method
define a method for entity instantiation and storage in cache
(related to #9942503)
Julien Cristau <julien.cristau@logilab.fr> [Thu, 25 Feb 2016 09:28:21 +0100] rev 11167
[entity] comparing two entities returns NotImplemented
Fixes a test when using some versions of unittest2, where
assertItemsEqual tries a sort and expects TypeError, which it doesn't
get if we directly raise NotImplementedError. The NotImplemented value
is treated specially by the interpreter:
https://docs.python.org/3.4/library/constants.html#NotImplemented
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:24:43 +0100] rev 11166
[test] replace one use of lgc.testlib.unittest_main with unittest.main
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:23:18 +0100] rev 11165
[test] stop using TestCase.set_description
It's a lgc-ism.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:20:57 +0100] rev 11164
[test] convert a lgc-style generative test into unittest2-style
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:10:22 +0100] rev 11163
[web/application] fix query log handling on python3
Writing bytes to a file opened in text mode doesn't work.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:36 +0100] rev 11162
[devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:07 +0100] rev 11161
[devtools/test] fix bytes vs text in test_base_url
Needed for python3 with the next changeset
Julien Cristau <julien.cristau@logilab.fr> [Wed, 24 Feb 2016 17:34:56 +0100] rev 11160
[devtools] skip CubicWebServerTC on python3
People should migrate to wsgi if they're going to use CubicWeb on
python3.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:10:51 +0100] rev 11159
[web/test] switch unittest_web from twisted to wsgi
And make it pass on python3 while at it.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 24 Feb 2016 17:31:56 +0100] rev 11158
[devtools] add CubicWebWsgiTC
Similar to CubicWebServerTC, except using wsgiref instead of twisted as
an http server.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:37:52 +0100] rev 11157
[web/test] return the hash of uploaded files in FileUploadTC instead of their contents
json must be unicode, which doesn't go well with arbitrary file
contents. Compute the file hash instead, as we know the hexdigest is
(ascii) text.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:29:06 +0100] rev 11156
[web/test] open() as a context manager
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:28:14 +0100] rev 11155
[web/test] json.loads expects text, not bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:39:51 +0100] rev 11154
[wsgi] fix handling of multiple posted files
We were only keeping the last received file.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 18:23:00 +0100] rev 11153
[web/test] Reword doc string for fileupload ajaxfunc
David Douard <david.douard@logilab.fr> [Tue, 03 Mar 2015 12:26:47 +0100] rev 11152
[skeleton] do not import the __pkginfo__.py module to make cubes installable via setuptools
When using a simple "import" statement, running 'python setup.py install' for
a cube fails in a fresh virtualenv due to the fact the install of the
dependencies (here cubicweb iteself) is done by the python process doing the
cube's installation, so the __pkginfo__ module from the cube is already
loaded (thus used) when installing cubicweb...
So we apply the third technique from:
https://packaging.python.org/en/latest/single_source_version.html
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:18:47 +0100] rev 11151
merge changes from 3.22.2
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:09:01 +0100] rev 11150
Added tag 3.22.2, debian/3.22.2-1, centos/3.22.2-1 for changeset 1b93ff37755b
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 11:45:54 +0100] rev 11149
[pkg] 3.22.2
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 19 Feb 2016 11:23:11 +0100] rev 11148
[pkg] fix centos install
David Douard <david.douard@logilab.fr> [Fri, 19 Feb 2016 11:03:32 +0100] rev 11147
[datafeed] do NOT call commit in DataFeedXMLParser.process() (closes #10928592)
and so, remove more useless code.
Doing a commit in DataFeedXMLParser.process() is a bad idea because this method
is called for every imported/updated entity, before handling deletions. So if
we commit here, odds are quite high that we're violating some integrity
constraint and end up with a ValidationError.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 14:00:39 +0100] rev 11146
[schema] restore constraint checking when running on old sqlite
Old sqlite3 doesn't provide CHECK constraint names in error messages,
preventing us from translating a backend integrity error into a
ValidationError. This was added in 2012, but the sqlite3 version in
RHEL6 is older; so if we run on old sqlite, keep checking the
constraints in python rather than only in SQL.
Closes #10927494
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Feb 2016 17:20:29 +0100] rev 11145
[web/autoform] fix regression introduced by #5758ba784ebd
The changes from cset 5758ba784ebd "[autoform] when building inlined-form view
for a relation, consider related entities intead of other views" lead to
an unexpected 'add new' link on creation of an entity with inlined form for
a relation of cardinality 1. To avoid this, we should consider formviews and not
existing relations when the entity is being created.
Closes #10860258
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 22 Dec 2015 09:23:00 +0100] rev 11144
[tox] Generate test environments for Python 2.7 and 3.4
Test commands for each environment are written down explicitly since I could
not find a way to extract the "package" name (e.g. "hooks") from the
environment name (e.g. "py34-hooks").
For Python 3.4 interpreter, only environments (subpackages) that do not depend
on cubes for their tests are listed since those test dependency cubes are not
yet installable with Python 3.x. etwist is also not included since the Python
3 port is not complete at the moment.
From local testing, py34 tests pass for the following subpackages:
- dataimport
- entities
- ext
- hooks
- wsgi
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 26 Jan 2016 18:04:00 +0100] rev 11143
[notification] avoid using InternalManager when we've got a CWUser
This will avoid potential information leak due to missed security restriction
and is more compatible with legacy code (pb encountered in some client code).
Closes #10294761
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 08:35:51 +0100] rev 11142
[dataimport] rename .time to .now attribute of meta generator
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 18 Feb 2016 14:36:39 +0100] rev 11141
[pkg] Set version to 3.22.2.dev0
So that cubes used in test dependencies do not install a released CubicWeb.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 15:08:34 +0100] rev 11140
[dataimport] cleanup a bit nohook store, mostly protecting some attributes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 11:13:51 +0100] rev 11139
[dataimport] add a filter function to not fail if some extentity has several values for an attribute of final relation
the function will simply record a warning in the import log and keep a value
randomly.
Notice the function has to be explicitly inserted in the transformation stream.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 11:12:09 +0100] rev 11138
[sources] synchronize source asynchronously when started from the UI
and redirect to the forthcoming import log, for a better user experience (there
is still a lot more to do there though).
Closes #10468967
Julien Cristau <julien.cristau@logilab.fr> [Fri, 19 Feb 2016 12:35:22 +0100] rev 11137
[test] fix unittest_devctl on python3.4
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Jan 2016 09:24:04 +0100] rev 11136
[test] Make sure that newcube command test produces expected files
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 10:04:35 +0100] rev 11135
[server] remove some pre 3.10 compat
Let's assume nobody will try upgrading an instance from pre-3.10
cubicweb to 3.23+. If they do, they're setting themselves up for a lot
of pain anyway.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 10:25:51 +0100] rev 11134
[pkg] use https URLs to pypi.{python.org,debian.net}
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 10:19:14 +0100] rev 11133
[pkg] use https URL for www.cubicweb.org
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 10:18:34 +0100] rev 11132
README: use https URLs for docs.cubicweb.org
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 10:03:51 +0100] rev 11131
pep8 bits
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 10:03:31 +0100] rev 11130
[i18n] enhance text formats french translation
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Feb 2016 13:45:34 +0100] rev 11129
Merge with 3.22 branch
The merge was clean, just dropped cubicweb/web/data/cubicweb.goa.js.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 21:59:49 +0100] rev 11128
[dataimport] update example to use standard importer
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 19:18:37 +0100] rev 11127
merge changes from 3.21.6
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 02 Feb 2016 17:19:13 +0100] rev 11126
flake8 serverctl
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Feb 2016 10:52:00 +0100] rev 11125
c-c source-sync now actually force synchronization
as advertized by its help message. This was because "force" argument wasn't
considered by acquire_synchronization_lock().
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 19:15:48 +0100] rev 11124
Added tag 3.21.6, debian/3.21.6-1, centos/3.21.6-1 for changeset b3cbbb7690b6
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 18:53:27 +0100] rev 11123
[pkg] 3.21.6
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 18:41:40 +0100] rev 11122
merge changes from 3.20.13
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 18:17:35 +0100] rev 11121
Added tag 3.20.13, debian/3.20.13-1, centos/3.20.13-1 for changeset 8c5dabbcd4d9
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 17:54:17 +0100] rev 11120
[pkg] 3.20.13
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 04 Jan 2016 10:43:35 +0100] rev 11119
[pkg] Yams >= 0.42 breaks CubicWeb < 3.21
Closes #9720390.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 17:16:45 +0100] rev 11118
merge changes from 3.19.14
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 14:52:28 +0100] rev 11117
Added tag 3.19.14, debian/3.19.14-1, centos/3.19.14-1 for changeset 72a0f70879ac
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 11:02:04 +0100] rev 11116
[pkg] 3.19.14
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 11:01:09 +0100] rev 11115
[sources/native] remove extra space before colon
This isn't French.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 10:52:38 +0100] rev 11114
[web/views] fix editcontroller regression
unittest_views_basecontrollers.py's
EditControllerTC.test_edit_mandatory_inlined3_object regressed with
changeset dcbb64d3a1d9 because it relied on POSTing nonexisting eids.
This seems like a silly idea, but let's keep the behaviour unchanged.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Feb 2016 16:13:43 +0100] rev 11113
Added tag 3.22.1, debian/3.22.1-1, centos/3.22.1-1 for changeset d0d86803a804
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 15:31:48 +0100] rev 11112
fix test broken by #012e6c7d02ef
Julien Cristau <julien.cristau@logilab.fr> [Fri, 12 Feb 2016 15:21:21 +0100] rev 11111
[pkg] Attempt to fix rhel6 build
I don't know what I'm doing, but this seems to work.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 12 Feb 2016 15:19:59 +0100] rev 11110
[dataimport/test] fix python2.6 syntax error
Don't use braces for set literals.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Feb 2016 14:09:38 +0100] rev 11109
Remove unused import in entity.py
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 10:09:13 +0100] rev 11108
[migration] don't ask confirm for those sql queries
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 10:06:03 +0100] rev 11107
quick fix which closes #0673348 - see comment for more info
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 10:39:24 +0100] rev 11106
[migration] test if entity type has been in the deleted in the transaction should protect both clauses
else we may attempt to execute the UPDATE query on a table which has been
deleted.
Closes #10692374
Julien Cristau <julien.cristau@logilab.fr> [Fri, 12 Feb 2016 10:39:14 +0100] rev 11105
[pkg] 3.22.1
David Douard <david.douard@logilab.fr> [Mon, 06 Jul 2015 11:04:42 +0200] rev 11104
[cwctl] remove support for startorder file in /etc/cubicweb.d (closes #5618947)
It's now useless.
Arthur Lutz <arthur.lutz@logilab.fr> [Wed, 10 Feb 2016 14:43:05 +0100] rev 11103
[exceptions] fix string conversion for Unauthorized exception
changeset 3cb87b61b067 changed CubicWebException to define __unicode__
as the main entry point for string conversion, but left Unauthorized's
__str__ definition unchanged, leading to a mismatch. Closes #10646396.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 11:01:46 +0100] rev 11102
Fix Binary on python < 2.7.4 (closes #10593811)
Before the fix for http://bugs.python.org/issue10211 we can't pass a
buffer object to BytesIO, so keep using StringIO in that case. And
because StringIO is an old-style class, we can't use super().
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 22:00:48 +0100] rev 11101
[migration] fix crash on 3.22 upgrade if entity type doesn't exist in fsschema (pending removal)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 04 Feb 2016 12:00:23 +0100] rev 11100
[autoform] when building inlined-form view for a relation, consider related entities intead of other views
by considering previous form-views, we may miss that there exists related
entities but which are not editable.
Closes #10495602
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 17:22:25 +0100] rev 11099
Add a __main__ to cubicweb
This avoids calling cubicweb-ctl relatively in tests and could be useful
in virtualenv.
This is just a copy of bin/cubicweb-ctl file, which should probably be
generated from a setuptools entry points.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 03 Feb 2016 15:12:32 +0100] rev 11098
merge 3.19 heads
Getting an unexpected test error though:
ERROR: test_edit_mandatory_inlined3_object (unittest_views_basecontrollers.EditControllerTC)
Christophe de Vienne <christophe@unlish.com> [Sat, 30 Jan 2016 23:06:18 +0100] rev 11097
[cwvreg] Fix propertyvalues hot updates
When CWProperty instances are touched, the corresponding value gets
updated in vreg['propertyvalues'], but their type was ignored.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 16:49:22 +0100] rev 11096
[pkg] remove useless python >= 3.4 dependency
python is python2 is never >= 3.4.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 16:32:20 +0100] rev 11095
[dataimport/test] fix test failures since 35b29f1eb37a
The index name changed, so we need to follow suit.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 05 Feb 2016 12:26:28 +0100] rev 11094
[pkg] do not include toplevel directories in rpm (closes #10362119)
Our spec file conflicts with the filesystem package in centos7: we set
permissions to 0755 for /usr/bin and /usr/lib whereas filesystem sets
them to 0555.
So to be compatible with both centos7 and others we simply ignore these
directories.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 10:30:01 +0100] rev 11093
[devtools] fix config.repository signature
Its argument is called 'vreg', not 'x'. Closes #10515113.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 16:23:34 +0100] rev 11092
[predicates] fix paginated_rset when the class has no page_size_property
Fixes test failure introduced by 70733b2dfd2a, which assumed paginated_rset
would only be called on a class with a page_size_property attribute.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 14:23:17 +0100] rev 11091
[repository] drop usage of no more necessary eschema_eid function
since the previous cset, we are guaranteed that repository's entity schema will
have their eid attribute properly set, so we don't have anymore to check
everytime if some entity schema's .eid attributes is set or not (and retrieve it
if not).
Related to #10450092
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:17:30 +0100] rev 11090
[repository] set .eid on eschema when schema is loaded from the filesystem
enforcing the contract that a repository's schema should have .eid attribute of
entity schema set to the eid of the entity used to serialize them in the db.
Before this cset, this was not true during tests or for some c-c commands where
'quick_start' is set (eg db-restore, i18ncube...).
The change in server __init__ makes this assumption true during instance
creation: the serializing code was actually setting eid on schema object, but a
reference to a previously built schema was given instead of the one for the
latest created repository.
Closes #10450092
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 10:06:36 +0100] rev 11089
[dataimport] simplify SQLGenSourceWrapper.add_info
At this point 'CWSource' is a thing (we're not in the middle of a
migration), and source.eid won't be None (we read it from the db)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 15:10:35 +0100] rev 11088
ensure .tox is blacklisted when recursing on the fs to get some files
among others, avoid crash when using 'c-c i18ncube' on a cube using tox.
Closes #10429317
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 11:12:58 +0100] rev 11087
drop a note about usage of sqls_create_multicol_unique_index and avoid a lgdb warning
Julien Cristau <julien.cristau@logilab.fr> [Thu, 21 Jan 2016 16:08:17 +0100] rev 11086
[devtools] don't auto-populate virtual relations
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 16:48:58 +0100] rev 11085
[skeleton] Restore verbose output in setup.py
This part of commit fdadf59be612 missing the integration window.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 01 Dec 2015 16:10:18 +0100] rev 11084
[hooks] Skip modification_date attribute in "notifentityupdated" hook
Depending on the call order of hooks, "modification_date" may come in
entity.cw_edited or not (from "metaattrsupdate" hook usually). It should
however not be considered in the notification context.
Closes #8842064.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 01 Dec 2015 14:44:55 +0100] rev 11083
[test] Gather tests about mail module
From sobjects/test/unittest_notification.py to test/unittest_mail.py where
other tests for mail.py are already.
Some style fixes along the way.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 05 Jan 2016 10:36:17 +0100] rev 11082
[web/component] guard against invalid page_size form parameter
Same as dff28956f37e, except the almost same code exists in two places
(yay us).
Julien Cristau <julien.cristau@logilab.fr> [Tue, 05 Jan 2016 10:31:29 +0100] rev 11081
[predicates] fix paginated_rset for components that change page_size_property
The predicate and component had better agree on the page size.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 06 Jan 2016 11:47:08 +0100] rev 11080
[devtools] fix get_bounds
Say an attribute has two IntervalBoundConstraints, one with minvalue=0
and the other with maxvalue=10 (not literally, or that could be a single
constraint, but e.g. with references to other attributes). We don't want to
override the minvalue of the former with None just because the latter happens
last in the constraints list.
This doesn't fix the case where two constraints both have a min or a max
value. Meh.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 06 Jan 2016 15:27:59 +0100] rev 11079
[devtools] "fix" boundary condition for autofill
maxvalue in an IntervalBoundConstraint is inclusive. If the min and max
values happened to coincide, we would call random.choice on an empty
list, which it didn't like.
This is still broken in the case of BoundaryConstraint('>', minvalue),
as we assume the minvalue is in the range, but that's something for
another time.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 19 Jan 2016 16:44:34 +0100] rev 11078
[test] Use stdlib doctest module instead of logilab-common class
The former just works fine now but the later does not play well with py.test.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 17:42:22 +0100] rev 11077
[test] Re-implement generative tests with subtests
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 18:35:07 +0100] rev 11076
[devtools] Re-implement generative tests using subtests
Generative tests as implemented in logilab.common.testib are not compatible
with tests runner other than lgc.pytest and this implementation differs from
the standard library, which has support for subtests_ since Python 3.4. Use
unittest2 to bridge the gap.
Maybe it'd be good to implement this on logilab.common.testlib side at some
point. Let's see how this gets received here first.
.. _subtests: https://docs.python.org/3/library/unittest.html#subtests
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:02:49 +0100] rev 11075
cleanups
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 26 Jan 2016 11:49:25 +0100] rev 11074
[pkg] python-tz does not exist in centos should be pytz (closes #10290056)
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 19 Jan 2016 10:03:16 +0100] rev 11073
[test] Skip LDAP tests if any of the underlying programs is not found
Some programs are in ldap-utils or ldapscripts, which may not be installed
despite slapd may.
Follow-up on 282880f81311.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jan 2016 09:23:07 +0100] rev 11072
Handle virtualenv development mode
Looking for VIRTUAL_ENV environment variable as a sign of virtualenv
activation. This at least works for developing CubicWeb itself (not sure yet
about cubes). And it makes `tox --develop` work as well.
Add a test for cwconfig._find_prefix within a virtualenv.
In tox.ini, use `develop option`_ accordingly. This makes tox running
significantly faster since it avoids building and installing the sdist. Aside,
the "develop" install is now performed *after* all test requirements are
processed, which means that the cubicweb package should always be the one from
source -- instead of a released version pulled by a cube through test
dependencies, which may occur in "recreate" step.
.. _`develop option`: <http://tox.readthedocs.org/en/latest/config.html#confval-usedevelop=BOOL
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 18:17:23 +0100] rev 11071
[skeleton] Use os.walk in setup.py for Python3 compatibility
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 18:39:27 +0100] rev 11070
[skeleton] Use unittest.main directly
Instead of lgc.testlib.unittest_main as they are identical.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 16:24:01 +0100] rev 11069
[devtools/testlib] Disable pause trace in setUp
Closes #9856028.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Jan 2016 19:50:57 +0100] rev 11068
[test] Remove dependency on person cube in devtools package
Julien Cristau <julien.cristau@logilab.fr> [Tue, 26 Jan 2016 11:46:41 +0100] rev 11067
[pkg] add missing python-tz dependency
Florent Cayré <florent.cayre@logilab.fr> [Tue, 26 Jan 2016 14:04:45 +0100] rev 11066
[edit controller] Fix composite entity reparenting when inlined
This implies handling the reparenting case sooner, otherwise the
child entity modifications are cancelled (see 113e9da47afc).
Add a new test to ensure non-regression in all previous tests.
Closes #10291977.
Florent Cayré <florent.cayre@logilab.fr> [Mon, 14 Dec 2015 14:29:22 +0100] rev 11065
[forms] Do not raise errors on composite required relation being deleted
The entity included in the composite will be deleted in such a case, so
the field is not required even when the cardinality is '1' or '+'.
Related to #8529868
Florent Cayré <florent.cayre@logilab.fr> [Mon, 07 Dec 2015 11:58:17 +0100] rev 11064
[edit controller] Cancel RQL queries to be performed on entities to be deleted
Composite relation removal via the EditController trigger an entity
removal. Changes on such a to-be-removed entity must be cancelled as
they may trigger integrity errors before the deletion occurs.
Closes #8529868.
Florent Cayré <florent.cayre@logilab.fr> [Fri, 04 Dec 2015 14:56:20 +0100] rev 11063
[edit controller] fix handling of removal of subentities from an edit form
In CubicWeb 3.18 the semantics of dropping a composite relation were changed.
It had before the effect of deleting the subentities.
Now the edit controller must handle this by itself (it was not adapted then by
mistake).
So if it detects the removal of a composite relation (on the browser side, the
user clicked on the "remove" action), the subentity is now explicitly deleted.
It was chosen not to change the form generation but the EditController:
- to ensure pre-3.18 forms backward compat
- to avoid the introduction of a specific entity-deletion API (RQL is probably
our best API for complex DB operations)
Related to #8529868.
Florent Cayré <florent.cayre@logilab.fr> [Wed, 25 Nov 2015 16:28:41 +0100] rev 11062
remove unused import
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Fri, 20 Nov 2015 12:29:13 +0100] rev 11061
[editcontroller] a slight code reorganisation, in preparation for a fix
* `entity` defined at method entry
* a combined `continue` and a dedent of the next big block
* some vertical white space
Related to #8529868.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Tue, 20 Oct 2015 16:05:36 +0200] rev 11060
[sources/native] ask permission to continue restoring even if metadata do not match (closes #7771864)
Moreover we try to clarify the message (Expected/Found was never too clear for users).
David Douard <david.douard@logilab.fr> [Mon, 27 Jul 2015 10:00:32 +0200] rev 11059
[views] fix ProcessInformationView: SESSION_MANAGER can be None (closes #5753280)
eg. with pyramid.
(grafted from 6a07c2dc3d85f4de0cf48221607e02c4473e11e4)
Florent Cayré <florent.cayre@logilab.fr> [Wed, 16 Dec 2015 18:08:37 +0100] rev 11058
[web] Move "display all"/ "back to pagination" link generation into the navigation component
This makes the html generation customizable.
Closes #9219057
Denis Laxalde <denis.laxalde@logilab.fr> [Sat, 16 Jan 2016 13:48:51 +0100] rev 11057
Reorganize source tree to have a "cubicweb" top-level package
Basically:
mkdir cubicweb
hg mv *.py -X setup.py cubicweb
hg mv dataimport devtools entities etwist ext hooks i18n misc schemas server skeleton sobjects test web wsgi cubicweb
Other changes:
* adjust path to cubicweb-ctl in devtools tests
* update setup.py to avoid importing __pkginfo__ (exec it instead),
replace os.path.walk by os.walk and prepend `modname` here and there
* update tox.ini to account for new test locations
* update doc/conf.py so that it still finds __pkginfo__.py and CWDIR in
doc/Makefile
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 04 Jan 2016 11:12:30 +0100] rev 11056
clean some remaining dust from goa time
David Douard <david.douard@logilab.fr> [Wed, 06 Jan 2016 08:58:43 +0100] rev 11055
[datafeed] io.BytesIO requires a buffer, not a unicode (closes #9783743)
The URLLibResponseAdapter should probably be refactored (or killed?)
David Douard <david.douard@logilab.fr> [Thu, 07 Jan 2016 12:20:50 +0100] rev 11054
[pkg] rql 0.34 and logilab-database 1.15 break cubicweb 3.21
David Douard <david.douard@logilab.fr> [Thu, 07 Jan 2016 12:20:50 +0100] rev 11053
[pkg] rql 0.34 and logilab-database 1.15 break cubicweb 3.21
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Jan 2016 18:40:30 +0100] rev 11052
Added tag 3.22.0, debian/3.22.0-1, centos/3.22.0-1 for changeset de472896fc0a
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Jan 2016 17:57:14 +0100] rev 11051
[pkg] 3.22.0
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 04 Jan 2016 17:23:36 +0100] rev 11050
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 08:44:45 +0100] rev 11049
[formwidgets] a bit of pep8
Erica Marco <erica.marco@logilab.fr> [Thu, 26 Mar 2015 11:13:12 +0100] rev 11048
[views] improve JQueryDatePicker so that a date field can be defined as the min/max of an other one
closes #5169039
Julien Cristau <julien.cristau@logilab.fr> [Fri, 18 Dec 2015 17:49:45 +0100] rev 11047
[entity] don't look at fetch order recursively
If fetch_attrs includes relations, stop including the entities on the
other side in our sorting. Fixes regression from 73ea636a5562 where we
would sort on the target entity before the attribute we wanted if the
relation's name sorted before the attribute's. This showed up in the
forge/tracker cubes with Version entities being sorted by their State's
name in preference to their version number.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Dec 2015 10:36:08 +0100] rev 11046
[pkg] fix paths in debian doc-base control file
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Jan 2016 10:36:57 +0100] rev 11045
[ldapfeed] extid and cwuri aren't the same thing
Historically, we used a ldap://... URI as cwuri attribute, not just the
dn. The extid field, OTOH, was always the dn. So when initializing our
dict of known entities from an ldap source, look at existing extids, not
cwuris, to avoid importing already-existing users (and violated unicity
constraints).
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 15:44:28 +0100] rev 11044
[entities] add eid to ISerializableAdapter
Life without an eid is made of sadness.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 10:52:55 +0100] rev 11043
[doc] 3.22 release notes update
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 18:25:37 +0100] rev 11042
[datafeed] use tz-aware datetime objects
Avoid TypeError when comparing tz-naive and tz-aware objects in fresh()
method.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 17:36:50 +0100] rev 11041
[pkg] fix syntax error in debian/control
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 17:35:39 +0100] rev 11040
[pkg] remove no-longer-used addresses from debian control file
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 11:35:43 +0100] rev 11039
[schema] rebuild computed attributes on schema reload
If we have new computed attributes we need to set their formula_select
attribute or things get sad.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 10:39:05 +0100] rev 11038
[hooks] fix extra_props handling on python3
The json module expects str, not bytes, so we need to do the decoding.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 16:16:07 +0100] rev 11037
[py3k/ldapparser] avoid confusion between unicode and bytes
- ldap3 dicts contain unicode strings
- extid must be bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Dec 2015 17:00:03 +0100] rev 11036
[pkg] use correct lgdb version for tz rework
Related to #4848923.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Dec 2015 09:36:58 +0100] rev 11035
pep8 bits
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 22 Dec 2015 15:35:10 +0100] rev 11034
[server] improve TZDatetime support
by depending on logilab-database 1.15.0 including
https://www.logilab.org/ticket/1485893, we can now keep the tzinfo
attribute on datetime objects for TZDatetime attributes, so one knows
that this is a tz-aware datetime.
To easily make it work with backends that have no tz support, we keep
converting tz-aware datetime objects into utc naive datetime objects
before sending them to the database.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Dec 2015 09:23:23 +0100] rev 11033
[schema] Use TZDatetime for creation_date and modification_date
No work has been done for form fields/widgets since creation_date /
modification_date are by default not editable through the default UI. One may
want to add such feature at some point.
Time will be displayed as UTC, let the end-application decide otherwise by
customizing the tzdatetime printer if desired.
Closes #4848923
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Dec 2015 09:37:15 +0100] rev 11032
[server] fix SQLite patch to ensure TZDatetime are properly typed
NB: at this point, the TZ info is completely ignored. It will be
properly handled in later commits.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Dec 2015 09:10:20 +0100] rev 11031
[server] fix name and add docstring to connection initialization functions
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Dec 2015 09:07:33 +0100] rev 11030
[server] always monkeypatch QuerierHelper to handle dates and times on SQLite
The patch prevents problems due to a SQLite bug causing some values to
be returned as strings instead of properly typed objects.
This should probably be improved to use SQLite connection hooks. But
the major improvement is that the monkeypatch is now done all the time,
and not just for tests.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 17 Dec 2015 15:17:45 +0100] rev 11029
[testlib] put postgres test database in test/data/database directory
with other (sqlite) test databases. Closes #9240765
Simplify .hgignore in passing.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 02 Dec 2015 15:24:03 +0100] rev 11028
[dataimport] make eids_seq_range as massive store instance attribute again
I changed it to a class attribute recently, but on further thought (and
prompting from Adrien) it seems to make more sense as an instance
attribute.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 02 Dec 2015 15:20:52 +0100] rev 11027
[dataimport] stop supporting None as eids_seq_range
It couldn't work as-is because entities_id_seq is not a sequence object.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 02 Dec 2015 15:19:24 +0100] rev 11026
[dataimport] remove eids_seq_start attribute from massive store
Instead provide a utility function to reset the eid sequence.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 02 Dec 2015 14:57:03 +0100] rev 11025
[dataimport] massive store in slave mode shouldn't flush metadata
The metadata insertion is to be done only by the master-mode store.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Mon, 21 Dec 2015 12:29:50 +0100] rev 11024
[dataimport] check that MassiveObjectStore restores the db schema properly
Ideally we'd use "pg_dump --schema-only" to compare before/after, but when
restoring a constraint such as:
cstr48f9ceae537d68859b62c601681c8d3e CHECK (((cw_type)::text = ANY ((ARRAY['normal'::character varying, 'auto'::character varying])::text[])))
postgres will convert the text cast on array to a cast on each cell of array
cstr48f9ceae537d68859b62c601681c8d3e CHECK (cw_type::text = ANY (ARRAY['normal'::character varying::text, 'auto'::character varying::text]))
Samuel Trégouët <samuel.tregouet@logilab.fr> [Mon, 21 Dec 2015 12:41:30 +0100] rev 11023
[dataimport] split out listing indices/constraints from getting the corresponding query
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 15 Dec 2015 10:41:26 +0100] rev 11022
[dataimport] massive_store: do not drop constraints multiple times
It is now done in __init__.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 15 Dec 2015 10:13:55 +0100] rev 11021
[dataimport] massive_store: do not drop constraints with `cascade` since it breaks things
We want to be able to restore constraints at the end of the import. If
they are silently dropped due to a CASCADE, we can't do that.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Mon, 21 Dec 2015 12:16:12 +0100] rev 11020
[dataimport] massive_store: drop all constraints in __init__ and restore all in finish
This should avoid dependency issues when dropping specific constraints (e.g.
when dropping a primary constraint referenced by a foreign key constraint).
We only do this in master mode, slave mode stores are supposed to work
with an initialized db already.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 15 Dec 2015 10:32:53 +0100] rev 11019
[dataimport] massive_store: ignore primary key when requesting indexes on a table
Primary keys show up in both lists of constraints and indexes. Pick a
side and stick to it.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 15 Dec 2015 10:28:39 +0100] rev 11018
[dataimport] massive_store: reformat sql query
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Dec 2015 12:47:35 +0100] rev 11017
[devtools] Use super() in TestServerConfiguration.__init__()
While cleaning up the use of init_config() in WSGIAppTC, I wondered why
the method was trying to set the 'https_uiprops' and 'https_datadir_url'
attributes on the config, when WebConfiguration's __init__ should be
taking care of setting them.
WSGIAppTC uses the default configuration - one that derives from
ApptestConfiguration (noted as G below).
The issue is that the class hierarchy of ApptestConfiguration includes
TestServerConfiguration (C in the graph below) which calls
ServerConfiguration's __init__ directly (B below). As B does not have an
__init__ method, CubicWebConfiguration's __init__ is called directly (A
below). This has the unintended consequence of preventing
WebConfiguration's __init__ from being called.
A
/ \
B D
| |
C E
\ /
F
|
G
|
...
A: cwconfig.CubicWebConfiguration
B: server.serverconfig.ServerConfiguration
C: devtools.TestServerConfiguration
D: web.webconfig.WebConfiguration
E: etwist.twconfig.WebConfigurationBase
F: devtools.BaseApptestConfiguration
G: devtools.ApptestConfiguration
NB: unittest_wsgi wasn't really broken, as it's the only test in
wsgi/test/, but I figured I might as well clean it up.
Related to #9297611.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Dec 2015 10:08:13 +0100] rev 11016
[devtools] Fix database creation issues for CubicWebTestTC tests
To reproduce (with a purged repo):
* python web/test/test_jscript.py
* python web/test/unittest_views_xmlrss.py
The '__default_empty_db__' will contain the wrong 'base_url'
configuration, thus breaking URLs in the xmlrss tests.
Closes #9297611.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Dec 2015 09:55:14 +0100] rev 11015
[devtools] Fix database creation issues for CubicWebServerTC tests
To reproduce (with a purged repo):
* python web/test/unittest_web.py MiscOptionsTC
* python web/test/unittest_views_xmlrss.py
The core issue is that CubicWebServerConfig.default_base_url() is called
inside init_config(), which is called during the equivalent of
'db-create'. The '__default_empty_db__' will contain the wrong
'base_url' configuration, thus breaking URLs in the xmlrss tests.
Related to #9297611.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Dec 2015 09:59:45 +0100] rev 11014
[devtools] Move attribute docstring to correct location
Rémi Cardona <remi.cardona@free.fr> [Sun, 20 Dec 2015 19:08:19 +0100] rev 11013
[web] Make tests pass if tal isn't available
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Dec 2015 15:52:41 +0100] rev 11012
[py3k] fix cubicweb.mail.parse_message_id
base64.b64decode returns bytes. Fixes
sobjects/test/unittest_notification.py.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Dec 2015 15:46:36 +0100] rev 11011
[test/py3k] fix test_recipients_finder
AssertionError: <zip object at 0x7f1dfb0230c8> != [('abcd@logilab.fr', 'en'), ('efgh@logilab.fr', 'en')]
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Dec 2015 15:44:20 +0100] rev 11010
[dataimport] fix SQLGenObjectStore's add_info for python3
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Dec 2015 15:43:49 +0100] rev 11009
[dataimport] py3k doesn't like + on dict_items objects
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 10:48:47 +0200] rev 11008
[repository] remove unused check_session method and its test
Related to #1381328.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 Dec 2015 10:20:26 +0100] rev 11007
[migration/test] avoid test interdependency by removing fakecustomtype cube
There is still a failing test afterward but it doesn't seem related to
changes in this series.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Dec 2015 17:44:18 +0100] rev 11006
[migration/test] use numeric(precision, scale) instead of geometry
The latter requires the postgis extension which is overkill for this test.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 17:44:18 +0100] rev 11005
[server, hooks] allow callable in dbh.TYPE_MAPPING
This is necessary for cubes introducing new custom final types whose generated
sql may depend on some extra configuration, avoiding ugly-buggy hack as done
currently by the postgis cube.
Closes #7569998
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 17:44:17 +0100] rev 11004
[migration] consider extra_props in rdef created during attribute creation hook
else we may miss important data such as type parametrization (see
postgis.Geometry for instance).
Related to #7569998
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 17:44:17 +0100] rev 11003
[migration] only define variable if needed
Julien Cristau <julien.cristau@logilab.fr> [Thu, 17 Dec 2015 17:14:08 +0100] rev 11002
[migration] handle non-existing attribute type when adding an entity type
The final type needs to be added to the schema first.
Related to #7569998.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 17:44:17 +0100] rev 11001
[migration] handle the case where new final entity type is not yet in the schema
This may occur on new cube addition. Related to #7569998.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 17:44:16 +0100] rev 11000
[migration] config.add_cubes should ensure site_cubicweb of new cubes is called
Related to #7569998
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 17:44:16 +0100] rev 10999
[migration] test addition of a cube providing a custom final type
This does not work yet.
Related to #7569998
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 16 Sep 2015 10:56:36 +0200] rev 10998
[server] add test demonstrating cache update pb since cw > 3.21
Fixed by the previous changeset.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Dec 2015 16:58:45 +0100] rev 10997
Bring back the separate web-side entity cache
Prior to changeset 635cfac73d28 "[repoapi] fold ClientConnection into
Connection", we had two entity caches: one on the client/dbapi/web side,
and one on the server/repo side. This is a waste, but it is actually
needed as long as we have the magic _cw attribute on entities which must
sometimes be a request and sometimes a cnx. Removing the duplication
caused weird problems with entity._cw alternating between both types of
objects, which is unexpected by both the repo and the web sides.
We add an entity cache on ConnectionCubicWebRequestBase, separate from
the Connection's, and bring back the
_cw_update_attr_cache/dont-cache-attrs mechanism, to let the
server/edition code let caches know which attributes have been modified
Entity.as_rset can be cached again, as ResultSet no longer modifies the
entity when fetching it from a cache.
Contrary to the pre-3.21 code, _cw_update_attr_cache now handles web
requests and connections in the same way (otherwise the cache ends up
with wrong values if a hook modifies attributes), but dont-cache-attrs
is never set for (inlined) relations.
Closes #6863543
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Dec 2015 18:21:55 +0100] rev 10996
Backout "[entity,storage] remove hackish code from the bfss path
The merge of the repo-side and web-side entity caches doesn't actually work,
because entities have a _cw attribute which is sometimes a connection and
sometimes a web request, and whose nature changes not-really-predictably
whenever ResultSet.get_entity() is called and brings it out of the cache.
This reverts commit 59a79300f213.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 17 Dec 2015 15:34:05 +0100] rev 10995
merge with 3.21.5-2
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 10 Dec 2015 17:34:37 +0100] rev 10994
[doc] add documentation about drop_cube
Julien Cristau <julien.cristau@logilab.fr> [Thu, 17 Dec 2015 15:16:14 +0100] rev 10993
Added tag debian/3.21.5-2 for changeset 228b6d2777e4
Julien Cristau <julien.cristau@logilab.fr> [Thu, 17 Dec 2015 14:55:18 +0100] rev 10992
[pkg] don't install dataimport/test in both cubicweb-server and cubicweb-dev
Closes #9239572
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Dec 2015 11:23:48 +0100] rev 10991
merge with 3.21.5
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 19:05:41 +0100] rev 10990
Added tag 3.21.5, debian/3.21.5-1, centos/3.21.5-1 for changeset e0572a786e6b
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 18:15:08 +0100] rev 10989
[pkg] 3.21.5
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Dec 2015 10:12:37 +0100] rev 10988
[js] Fix a ReferenceError in cubicweb.preferences.js
Rename function using proper English along the way.
Closes #8864731.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Dec 2015 14:55:10 +0100] rev 10987
[dataimport] add tests for SQLGenObjectStore (closes #9177565)
Stolen from the massive import store, with the irrelevant bits removed.
Remove redundant tests from test_pgstore.py.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Dec 2015 14:54:23 +0100] rev 10986
[dataimport] separate entities table from other metadata in SQLGenObjectStore
'entities' needs to be updated first as every other table has references
to its rows. Remove use of thread-local storage in the process.
related to #9177565.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Dec 2015 14:53:02 +0100] rev 10985
[dataimport] remove threading support from SQLGenObjectStore
It's untested and does not actually work at the moment with nb_threads > 1.
related to #9177565.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Thu, 03 Dec 2015 14:55:10 +0100] rev 10984
[dataimport] prepare_insert_entity should not crash with SQLGenObjectStore
grafted from 1079d68130e1e780791ceb2050e8a8b7a910f48d (3.22)
related to #9177565.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 01 Dec 2015 13:39:17 +0100] rev 10983
[dataimport] Fix method signature
Since d4bd28d5fca8, _storage_handler expect 4 args.
grafted from b089858c49a2806b6ea8a7ee66773436701e947c (3.22)
related to #9177565.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 01 Dec 2015 13:38:21 +0100] rev 10982
[dataimport] add missing import 'eschema_eid'
grafted from e3ec46b5c710067a0cecca53cc593a0dd4bd927e (3.22)
related to #9177565
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 14:12:59 +0100] rev 10981
merge with 3.21.4
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 12:37:04 +0100] rev 10980
Added tag 3.21.4, debian/3.21.4-1, centos/3.21.4-1 for changeset d3b92d3a7db0
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 12:00:31 +0100] rev 10979
[pkg] 3.21.4
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 11:41:25 +0100] rev 10978
merge with 3.20.12
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Dec 2015 11:24:52 +0100] rev 10977
Added tag 3.20.12, debian/3.20.12-1, centos/3.20.12-1 for changeset 03e8fc9f79a6
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Dec 2015 14:07:51 +0100] rev 10976
[tox] Ensure pytest gets run with virtualenv's python
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 09 Nov 2015 11:34:28 +0100] rev 10975
[tox] Use generating environments
Drop the "env" option, which is unknown, and set a generative_ "envlist". Then
use conditional dependencies based on factors_ to avoid repeating environment
sections. The only singular one is the "cubicweb" environment because of its
"commands".
At some point, it'd be nice to find a way to have python version prefixes
(py27-hooks or py34-web) for environment names but I could not find a way to extract
the package name from such names.
.. _generative: http://tox.readthedocs.org/en/latest/config.html#generative-envlist
.. _factors: http://tox.readthedocs.org/en/latest/config.html#factors-and-factor-conditional-settings
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 16:32:57 +0100] rev 10974
a bit of pep8
Rabah Meradi <rabah.meradi@logilab.fr> [Tue, 15 Dec 2015 08:55:58 +0100] rev 10973
[adapters] Use an adapter for serializing entities to a bare python structure
which may be used for e.g. JSON export or other and allow to have different
serializations for each entity types.
Closes #6378035
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Dec 2015 16:29:19 +0100] rev 10972
[pkg] 3.20.12
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Dec 2015 16:19:52 +0100] rev 10971
[dataimport] Fallback from COPY to executemany (closes #9135780)
If we can't build a suitable COPY command (e.g. because data has
unsupported type), use executemany instead. Regression introduced in
3.20.0.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Dec 2015 12:11:44 +0100] rev 10970
[web/views] unlink svg temp file after we're done
Otherwise we fill up the tempdir. Closes #9133268.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 08 Dec 2015 16:28:20 +0100] rev 10969
Use cubicweb._
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 08 Dec 2015 16:27:05 +0100] rev 10968
[web/views] Controllers should always return bytes
Previous code breaks only on py3k.
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Dec 2015 15:51:20 +0100] rev 10967
[devtools] Fix 'newcube' on py3k
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 10 Dec 2015 17:57:55 +0100] rev 10966
[toolsutils] Small fixes to fill_templated_file()
* Use context managers to close _both_ files
* Use io.open to enforce text mode on both python 2 and 3
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 10 Dec 2015 18:00:41 +0100] rev 10965
[skeleton] Fix broken spec file template
Broken in commit 73c1c9cf6bda.
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 10 Dec 2015 17:50:46 +0100] rev 10964
[devtools] Fix fd leak in tests
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Dec 2015 14:20:30 +0100] rev 10963
[devtools] stop using datetime.now() in cwctl newcube and i18ncube
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Dec 2015 14:06:43 +0100] rev 10962
[hooks] fix timestamp confusion in DataImportsCleanupStartupHook
CWDataImport.start_timestamp is inserted as datetime.utcnow(), in
server/sources/datafeed.py:DataFeedSourceinit_import_log.
Don't compare it to datetime.now().
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Dec 2015 13:58:03 +0100] rev 10961
[hooks] fix timestamp confusion in TransactionsCleanupStartupHook
transactions.tx_time is inserted as datetime.utcnow(), in
server/sources/native.py:NativeSQLSource.start_undoable_transaction.
Don't compare it to datetime.now().
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 10 Dec 2015 12:34:15 +0100] rev 10960
merge with 3.21.3
The change in unittest_serverctl.py is needed because of daef7ce08fea
(from 3.20.11) and 3914388b2d0f (from the 3.22 branch). Due to both
changes, CubicWebTC.config.repository no longer creates a new repository
(and thus, a new connection). Since both DBDumpCommand and
CubicWebTC.tearDown try to shutdown the repo, tearDown breaks apart.
The solution is to temporarily disable ServerConfiguration's config
cache. By forcing DBDumpCommand to get a new configuration object, it
then gets its own Repo object, allowing tearDown and DBDumpCommand to
work independently.
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Dec 2015 18:42:13 +0100] rev 10959
Added tag 3.21.3, debian/3.21.3-1, centos/3.21.3-1 for changeset 9edfe9429209
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Dec 2015 18:29:59 +0100] rev 10958
[pkg] 3.21.3
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Dec 2015 18:24:09 +0100] rev 10957
merge with 3.20.11
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 08 Sep 2015 09:05:31 +0200] rev 10956
update repo sources on update of source's entities .url attribute
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Dec 2015 16:36:17 +0100] rev 10955
Added tag 3.20.11, debian/3.20.11-1, centos/3.20.11-1 for changeset c44930ac9579
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Dec 2015 16:28:34 +0100] rev 10954
[pkg] 3.20.11
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 08 Dec 2015 17:59:54 +0100] rev 10953
[rest] a bit of pep8
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 08 Dec 2015 10:24:44 +0100] rev 10952
[rest] avoid field on two lines if name is above some size limit. Closes #8961835
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Dec 2015 16:15:00 +0100] rev 10951
action, view and service so managers can start source synchronization from the web ui
Closes #5474286
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 Nov 2015 14:54:30 +0100] rev 10950
[test] Skip ldap source tests if slapd is not available
Jean-Pierre Vergnes <jean-pierre.vergnes@logilab.fr> [Thu, 24 Sep 2015 09:43:36 +0200] rev 10949
[doc] Minor changes to the blog tutorial
Dimitri Papadopoulos <dimitri.papadopoulos@cea.fr> [Mon, 19 Oct 2015 23:39:30 +0200] rev 10948
[skel] remove (what looks like) a spurious copy/paste
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Dec 2015 16:19:03 +0100] rev 10947
Merge default heads published "concurrently"
Julien Cristau <julien.cristau@logilab.fr> [Thu, 26 Nov 2015 14:23:38 +0100] rev 10946
[qunit] move from CubicWebServerTC to CubicWebTestTC
This test now uses wsgi instead of twisted, and thus passes under python3.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 26 Nov 2015 14:37:06 +0100] rev 10945
[qunit] no need to enable CORS anymore
We serve everything needed for the tests through cubicweb.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 26 Nov 2015 14:34:47 +0100] rev 10944
[web/test] use GET, not POST, to load html files
POST comes with a body. There isn't one.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Thu, 03 Dec 2015 14:55:10 +0100] rev 10943
[dataimport] prepare_insert_entity should not crash with SQLGenObjectStore
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 01 Dec 2015 13:39:17 +0100] rev 10942
[dataimport] Fix method signature
Since d4bd28d5fca8, _storage_handler expect 4 args.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Tue, 01 Dec 2015 13:38:21 +0100] rev 10941
[dataimport] add missing import 'eschema_eid'
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 01 Dec 2015 09:09:48 +0100] rev 10940
[test] Remove unused import in unittest_qunit.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 Nov 2015 11:09:51 +0100] rev 10939
[dataimport] Format strings with % instead of .format()
For consistency with CubicWeb code base and to avoid Python 2.6
compatibility traps.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 Nov 2015 10:18:22 +0100] rev 10938
[test] Use datapath() in massive store tests
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 27 Nov 2015 12:26:17 +0100] rev 10937
[devtools] Disable anonymous login right before executing tests
CubicWebTC.init_config is called many times, especially when creating
the default database. This database is then reused by all tests in the
same directory.
The issue is that, if a test has 'anonymous_allowed' set to False, the
anonymous user won't be created by postcreate.py in the default
database. All other tests will fail miserably if they expected anonymous
login to work.
By actually disabling anonymous login after _init_repo, the default
database (and configuration) will be initialized with a working
anonymous user.
Closes #7485127.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 30 Nov 2015 15:53:35 +0100] rev 10936
[hooks] build EnsureSymmetricRelations{Add,Delete} dynamically
Instead of setting the __select__ attribute at registration time, which
confuses the filterable_selectors cache when running different tests (with
different schemas) in the same process, just make entirely new classes.
Closes #8785708.
Rémi Cardona <remi.cardona@logilab.fr>, Julien Cristau <julien.cristau@logilab.fr> [Thu, 26 Nov 2015 11:30:54 +0100] rev 10935
[qunit] stop dealing with filesystem paths
qunit tests need a few things served by cubicweb:
- qunit itself, which is now handled by CWDevtoolsStaticController (serving
files in cubicweb/devtools/data)
- standard cubicweb or cubes data files, handled by the DataController
- the tests themselves and their dependencies. These can live in
<apphome>/data or <apphome>/static and be served by one of the
STATIC_CONTROLLERS
This avoids having to guess in CWSoftwareRootStaticController where to
serve things from (some files may be installed, others are in the source
tree), and should hopefully make it possible to have these tests pass
when using tox, and to write qunit tests for cubes, outside of cubicweb
itself.
This requires modifying the tests to only declare URL paths instead of
filesystem paths, and moving support files below test/data/static.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 26 Nov 2015 11:23:52 +0100] rev 10934
[devtools] fix QUnitResultController
It needs to return something.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 25 Jun 2015 17:13:33 +0200] rev 10933
[utils] Drop now-unused SizeConstrainedList
It's last usage in CubicWeb got removed from changeset '[views] remove
breadcrumbs usage to retrieve last visited page'
Related to #5456850.
Rabah Meradi <rabah.meradi@logilab.fr> [Wed, 25 Nov 2015 18:31:48 +0100] rev 10932
[views] remove breadcrumbs usage to retrieve last visited page
Use JavaScript history.back to go to the last visited page. Rename
_return_to_lastpage to _redirect as it becomes misnamed.
Drop `test_redirect_default` test in `unittest_views_basecontrollers`
which essentially tested this (now removed) breadcrumbs "feature".
Closes #5456850.
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 25 Nov 2015 16:22:42 +0100] rev 10931
[cwconfig] Explicitly close generated config file
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 25 Nov 2015 17:57:07 +0100] rev 10930
[doc] Add 3.21 release date
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Wed, 25 Nov 2015 10:19:52 +0100] rev 10929
[dataimport] fix db-namespace default value handling
In a fresh new instance, the "db-namespace" option is set as empty
by default in the "sources" file.
This seems correct but empty string is not a valid pg_schema and
actually means that we should use "public"
Julien Cristau <julien.cristau@logilab.fr> [Wed, 25 Nov 2015 11:30:36 +0100] rev 10928
[server] unbreak db-restore
Julien Cristau <julien.cristau@logilab.fr> [Tue, 24 Nov 2015 19:00:02 +0100] rev 10927
[doc] add 3.22 changelog
Julien Cristau <julien.cristau@logilab.fr> [Tue, 24 Nov 2015 18:22:26 +0100] rev 10926
[rset] remove stray (commented-out) print
Left from debugging in af266f27c4d5
Julien Cristau <julien.cristau@logilab.fr> [Mon, 23 Nov 2015 19:18:08 +0100] rev 10925
Un-hide jshintrc
dot-files belong in ~, not anywhere else.
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 25 Nov 2015 17:31:32 +0100] rev 10924
[views] Use 'pyvaltable' instead of hand-crafted <table> tags
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 24 Nov 2015 17:31:09 +0100] rev 10923
[web] Stop using config.repository()
Since commit 3914388b2d0f, this method creates a new Repository object
and thus reloads all the cubes, taking for ever.
Closes #8634417.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 24 Nov 2015 16:57:07 +0100] rev 10922
[web] Stop using webconfig.vc_config()
The main issue is that this creates an entirely new Repository object
(since commit 3914388b2d0f) and thus reloads all the cubes, taking for
ever.
Related to #8634417.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Sep 2015 11:26:11 +0200] rev 10921
[migration] don't handle data deletion anymore on schema changes
In most cases when we want to drop some entity/relation type, we don't care
whether hooks are called on their deletion. There is even low chances that some
hooks still exists, based on an old version of the schema. Last but not least,
this is horribly inefficient.
So this should be clearly documented and handled by application's programmer if
desired.
This patch removes unnecessary deletion (because table or column will be later
dropped) and reimplements the case of partial deletion (only one relation
definition among several, hence the database structure isn't modified) using
sql.
Only one test regarding deletion of inlined relation def is added as other cases
seem to be covered by existing tests.
Closes #7023315
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 16:01:43 +0100] rev 10920
[hooks/syncschema] drop unused import
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 16:01:26 +0100] rev 10919
[hooks/syncschema] indentation fix
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 16:00:57 +0100] rev 10918
[server/test] cosmetic whitespace fix
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 16:00:06 +0100] rev 10917
[hooks/syncschema] don't set NOT NULL on inlined relation columns
The NOT NULL constraint was being added on inlined relation cardinality
change while it shouldn't. We don't want this, because this forbids to
add an entity without the relation set at once (it may be added later in
the transaction). This patch fix synchronization hook to stop doing
this.
Closes #6211101
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Sep 2015 12:18:00 +0200] rev 10916
[hooks/syncschema] Turn DropColumnOp into a data operation
While writing a test for a migration issue where "NOT NULL" was added to
an inlined relation column, I ran into a case where the same column was
deleted twice, which of course results in an error. This is because the
"ecrit_par" relation used by the test is ambiguous. I've hence turned
the DropColumnOp into a data operation to ensure we'll delete the column
only once in such case.
Related to #6211101
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 10:16:55 +0100] rev 10915
[server/sources] fix name error in eid_type_source_pre_131
i.e. the eid_type_source implementation used when some pre 3.13.1
database is detected. Regression from 5fbdbbe51867.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Jun 2015 10:06:00 +0200] rev 10914
[repository] deprecate the extid2eid based multi-sources API
This API is cumbersome and lead to obfuscated code because of the callback
mecanism implied when some entity has to be created.
Since we dropped the "true" multi-source, this mecanism is not needed anymore
and one should prefer to use the dataimport API inside its parser instead.
Notice the cwxml parser will trigger the deprecation warning, it should not be
used anymore in favor of ad-hoc parsers.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 Nov 2015 14:37:37 +0100] rev 10913
[ldapfeed] use source's extid2eid, the repo's one will be deprecated in a near future.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 14:36:41 +0100] rev 10912
[ldapfeed / dataimport] port ldapfeed parser to dataimport API
This makes the code easier to understand and will allow to deprecate the old
multi-sources api, based on creation callback through repo.extid2eid.
Currently with this patch, modification dates are not checked, hence
entities will be systematically updated.
We run the import with no hooks, because RQLObjectStore can only add
entities to the system source.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 Nov 2015 14:34:13 +0100] rev 10911
[server/test] document expected packages to run ldap tests
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 Nov 2015 14:28:19 +0100] rev 10910
[ldapfeed] simplify ldap2attrs
* tdict argument is never given
* separate value retrieval from setting output (will ease a latter cset)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 Nov 2015 14:26:44 +0100] rev 10909
[ldapfeed] simplify deactivation of unencountered users
there is no need for the by_etype intermediary dictionnary since we only
consider CWUsers.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 10:04:18 +0100] rev 10908
[server/test] display rset content on failure
Julien Cristau <julien.cristau@logilab.fr> [Tue, 24 Nov 2015 14:08:47 +0100] rev 10907
Remove trailing empty lines
Makes pep8 happier
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 24 Nov 2015 14:05:50 +0100] rev 10906
[ldapparser] simplify extid splitting
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 Nov 2015 14:23:08 +0100] rev 10905
[test/ldap] a bit of pep8
Samuel Trégouët <samuel.tregouet@logilab.fr> [Wed, 29 Jul 2015 10:05:37 +0200] rev 10904
[js] add configuration file for jshint (closes #5593987)
copied from https://gist.github.com/haschek/2595796
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 16 Oct 2015 11:58:10 +0200] rev 10903
spelling: *aly → *ally
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 16 Oct 2015 11:15:50 +0200] rev 10902
[web] Add a <label> around choices on CheckBox and Radio form widgets
Allows clicking directly on the text rather than only on the widget.
Closes #7672774.
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 16 Oct 2015 10:36:34 +0200] rev 10901
[web] xml_escape CheckBox and Radio labels (closes #7672764)
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 20 Nov 2015 14:17:46 +0100] rev 10900
[test/tox] Enforce installation of modified yapps
580a6821713d is not enough for tox apparently...
The thing is that it will first install dependencies (the `deps` option from
tox.ini), actually pulling yapps from Logilab github but then, it will install
the project (that is, CubicWeb) from the sdist *along with its dependencies*,
which will pull yapps again and override the previously installed version for
some mysterious reason.
So add a `pip install` command in tox.ini, so that the modified yapps is the
last one installed.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 18 Sep 2015 11:12:03 +0200] rev 10899
[web] delete unused PropertySheet._sourcefile_mtime
Julien Cristau <julien.cristau@logilab.fr> [Fri, 18 Sep 2015 11:05:47 +0200] rev 10898
[etwist] remove no-longer-necessary uicache cleaning
It was done before we were actually up, which means it could be too
eager when combined with #6893185.
Closes #6893247.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 23 Nov 2015 17:58:10 +0100] rev 10897
[web] remove PropertySheet._cache
Instead of remembering that a css file has been processed, we re-process it at
every request. This prevents our cache getting out of date with the file
system. Closes #6893185
While we're at it, write the file atomically so that we don't risk serving
partial data.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 23 Nov 2015 17:47:46 +0100] rev 10896
[test] Add missing u''
Test actually works in py3k, but not in python 2... That has to be a
first!
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 13 Nov 2015 14:29:48 +0100] rev 10895
[data] Use correct syntax to unset CSS attributes (closes #8602446)
'default' is actually a recognized CSS cursor name (the regular
pointer). Using this value doesn't revert to whatever cursor DOM
elements have by default ('pointer' on links, 'text' on text, etc).
The proper way to unset a CSS attribute on DOM elements is to set it to
an empty string.
http://stackoverflow.com/questions/2027935/how-to-remove-css-property-using-javascript
Julien Cristau <julien.cristau@logilab.fr> [Wed, 22 Apr 2015 16:09:04 +0200] rev 10894
[server] install custom sql scripts before creating tables for the schema
A cube might need something like 'CREATE EXTENSION postgis' before
creating tables for its entities, to add new final types.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 20 Oct 2015 15:40:17 +0200] rev 10893
[hooks] update internal URL in doc string
Jérôme Roy <jerome.roy@logilab.fr> [Thu, 19 Nov 2015 12:29:42 +0100] rev 10892
[doc] Fix restructured tables + improve english a bit
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 06 Nov 2015 09:41:11 +0100] rev 10891
[debian] Install dataimport package
Closes #8173104.
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 09 Sep 2015 18:52:56 +0200] rev 10890
[web/test] Remove use of old test API to silence warning
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 07 Sep 2015 18:42:47 +0200] rev 10889
[web/views] Fix sqlite unicode warning
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 03 Sep 2015 16:36:08 +0200] rev 10888
[devtools] Fix sqlite unicode warning
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 02 Sep 2015 12:08:31 +0200] rev 10887
[tests] Don't import QUnitTestCase into tests' global namespace
Unittest's test loader will try to execute QUnitTestCase's test_javascripts method. However this class is intended to be subclassed, not to be executed directly.
This change has the following consequences:
* slightly faster test execution
* almost all rtags warnings are gone
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 01 Sep 2015 17:13:16 +0200] rev 10886
[devtools/qunit] Fail quickly if firefox is not installed
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 24 Aug 2015 14:33:14 +0200] rev 10885
[devtools/qunit] Remove unused code
VerboseCalledProcessError is unused since 3905682ece11.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 23 Nov 2015 15:54:28 +0100] rev 10884
[py3k] import range using six.moves
Also, use create_entity instead of hand-crafting RQL queries.
Fixes regression introduced in commit 768d332de17b.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 17:17:53 +0100] rev 10883
[dataimport] remove size constraint handling
We do not want to silently truncate data. If that is wanted, the
application-specific importer should handle that itself.
[v2: Keep the get_size_constraints function so applications don't have
to reimplement it if they need to keep the truncate behaviour]
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 17:08:21 +0100] rev 10882
[dataimport] fix doc string to stop referring to the old API
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 17:00:50 +0100] rev 10881
[dataimport] drop duplicate init of MassiveObjectStore.sql
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 16:43:50 +0100] rev 10880
[dataimport] remove implicit commits from MassiveObjectStore
Let the user decide when to commit the transaction.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 16:21:29 +0100] rev 10879
[dataimport] drop extra indirection through MassiveObjectStore._initialized dict
We already have self.__dict__, no need to add another one for a static
set of keys.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 16:04:13 +0100] rev 10878
[dataimport] remove remaining references to dataio from MassiveObjectStore
In particular, rename metadata tables to live in the ^cw.* namespace.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:55:45 +0100] rev 10877
[dataimport] rename logger from dataio.massiveimport to dataimport.massive_store
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:52:26 +0100] rev 10876
[dataimport] remove commit_at_flush parameter from MassiveObjectStore
WARNING: the default value was True, but flush() now never commits.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:44:06 +0100] rev 10875
[dataimport] remove autoflush_metadata from MassiveObjectStore parameters
Hopefully not needed.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:41:27 +0100] rev 10874
[dataimport] remove uri_param_name from MassiveObjectStore parameters
It doesn't belong here.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:37:55 +0100] rev 10873
[dataimport] turn iid_maxsize into a class attribute
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:51:02 +0100] rev 10872
[dataimport] turn eids_seq_{start,range} into class attributes
Only the master-mode store will actually use eids_seq_start to reset the
eid sequence.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:29:07 +0100] rev 10871
[dataimport] remove replace_sep parameter from massive store
It is unused since changeset efbbf1e93a04 "[dataimport] Properly escape
strings sent to COPY FROM"
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:49:45 +0100] rev 10870
[dataimport] remove pg_schema parameter from massive store
It can be recovered from the system source's configuration.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 09 Nov 2015 15:22:43 +0100] rev 10869
[dataimport] remove drop_index parameter from massive store
"drop_index=False" also implied not dropping any constraints, in
particular foreign keys, which meant any attempt to import entities
would fail, because we only add metadata (the entities table) after the
entity's insertion.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Nov 2015 09:22:35 +0100] rev 10868
[dataimport/test] update call to ucsvreader
Silences warning: [3.20] 'separator' kwarg is deprecated, use 'delimiter' instead
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Nov 2015 09:09:08 +0100] rev 10867
[dataimport] remove deprecated methods from massive store
This code is new in cubicweb, no reason for it to carry deprecated stuff
from the start.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Nov 2015 09:11:10 +0100] rev 10866
[dataimport/test] use store.finish instead of deprecated store.cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 21 Oct 2015 16:58:30 +0200] rev 10865
[dataimport] drop no more used parameter on massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 21 Oct 2015 16:34:52 +0200] rev 10864
[dataimport] methods that modify in-place shouldn't return value
Also mark those methods private and drop some useless comments in passing.
Related to #5414760
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 21 Oct 2015 16:32:11 +0200] rev 10863
[dataimport] implement new store API on massive store
and deprecate the old one.
Related to #5414760
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 21 Oct 2015 16:31:05 +0200] rev 10862
[dataimport] .finish method was missing from (NoHook)RQLObjectStore
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 21 Oct 2015 16:08:57 +0200] rev 10861
[massive store] identity_relation should not be considered, is_relation seems missing
The "identity_relation" table should not even exist.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 18:29:15 +0100] rev 10860
[dataimport/test] use the right assert methods instead of assertTrue with a comparison
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 20:20:36 +0200] rev 10859
[dataimport] import range from six.moves
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 20:19:51 +0200] rev 10858
[dataimport/test] feed binary data to ucsvreader
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 20:19:11 +0200] rev 10857
[dataimport/test] fix broken comparison
We want to compare two ints, not an int and a db row
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 20:17:44 +0200] rev 10856
[dataimport] dict.iteritems() → dict.items()
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 20:16:41 +0200] rev 10855
[dataimport] use next builtin instead of next method on iterators
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 20:15:06 +0200] rev 10854
[dataimport] import StringIO from io
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 21 Oct 2015 16:10:47 +0200] rev 10853
[dataimport] backport massive store from dataio cube
Some tweaks have been made to work with 3.21 foreign key constraints.
Also test are not executed in our own pg cluster instead of polluting the system
one.
Closes #5414760
Julien Cristau <julien.cristau@logilab.fr> [Fri, 20 Nov 2015 18:17:08 +0100] rev 10852
[web] set proper Cache-Control header for static files
- set Cache-Control max-age to match Expires
- use the max_age method (defaults to 1 week) instead of hardcoded 6
months
Julien Cristau <julien.cristau@logilab.fr> [Fri, 20 Nov 2015 18:23:17 +0100] rev 10851
[web] use a redirect for /data/foo requests that don't use the instance md5 hash
The actual file contents can be cached for a long time. If the request
doesn't use the hash, that's wrong. Using a redirect lets keep the
caching for the actual file contents while not breaking requests missing
the hash.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 20 Nov 2015 12:37:15 +0100] rev 10850
[web] fix typo in doc string
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 19 Nov 2015 18:55:10 +0100] rev 10849
[web] stop adding an Expires header with all responses
As per RFC 1945 (HTTP 1.0):
If the date given is equal to or earlier than the value of the Date
header, the recipient must not cache the enclosed entity.
As per RFC 7234 (HTTP 1.1 Caching):
If a response includes a Cache-Control field with the max-age
directive (Section 5.2.2.8), a recipient MUST ignore the Expires
field.
Bottom line, the Expires header is now handled wherever the
Cache-Control is handled: inside cache managers.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 20 Nov 2015 17:13:03 +0100] rev 10848
[web] stop looking at a request's Cache-Control header
As per RFC 7234 (HTTP 1.1 Caching):
The "Cache-Control" header field is used to specify directives for
caches along the request/response chain.
CubicWeb is not a cache.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 19 Nov 2015 17:50:48 +0100] rev 10847
[fti] add cw_fti_index_rql_limit method
Improves on and deprecate cw_fti_index_rql_queries: execute the rql
directly, so that we don't need to compute the set of eids up-front, but
can just keep track of the last seen entity. Use the new method in
reindex_entities.
Keep calling cw_fti_index_rql_queries if it has been redefined (e.g in
cubes).
Related to #3621392.
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 19 Nov 2015 16:48:55 +0100] rev 10846
[fti] backout 166c6f7b1be4
* breaks tests
* see next commit for a better solution
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 19 Nov 2015 17:16:19 +0100] rev 10845
[py3k] Fix unicode added in commit 2350424585f8
Julien Cristau <julien.cristau@logilab.fr> [Thu, 19 Nov 2015 15:56:22 +0100] rev 10844
[server/ldap] deal with unicode or str coming out of ldap
It seems we can get either, I've no idea in which exact circumstances,
so this should let us work with both.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 19 Nov 2015 14:36:54 +0100] rev 10843
[test] pull yapps from Logilab's github
Fixes a couple of failures, pull request is almost a year old
(https://github.com/smurfix/yapps/pull/2).
Julien Cristau <julien.cristau@logilab.fr> [Thu, 12 Nov 2015 15:20:45 +0100] rev 10842
[pkg] bump yams requirement to 0.41.1
Needed by changeset c9321aedfbf9.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 12 Nov 2015 10:53:50 +0100] rev 10841
[entities] import range from six.moves
Julien Cristau <julien.cristau@logilab.fr> [Thu, 12 Nov 2015 10:52:28 +0100] rev 10840
merge head published by accident
Christophe de Vienne <christophe@unlish.com> [Thu, 06 Mar 2014 15:55:33 +0100] rev 10839
[fti] Improve big table reindexation
* Slice the reindexing in batches of 1000 entities.
* Make the output more verbose.
Closes #3621392
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 09 Nov 2015 11:11:31 +0100] rev 10838
[tox] Reference requirements.txt for hooks environment
The file existed but was not referenced.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 25 Mar 2015 14:20:56 +0100] rev 10837
[devtools/testlib] Remove assertions about direct usage of CubicWebTC/AutomaticWebTest
The point is to be able to use a test runner other than pytest (e.g. nose2,
nosetests or py.test) to run CubicWeb test suite. The issue is that most other
test loaders inspects members of all base classes of test case classes to
determine test methods and it hits this `config` property (actually executing
it), which breaks the assertion. So just return None instead of failing.
Closes #7817147.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 06 Nov 2015 17:02:09 +0100] rev 10836
Add ldap3 to server test requirements
Julien Cristau <julien.cristau@logilab.fr> [Fri, 06 Nov 2015 16:44:23 +0100] rev 10835
[pkg] bump version number so tox won't use cw from pypi
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 10:54:24 +0200] rev 10834
[schema] add CubicWebRelationDefinitionSchema
Stop monkeypatching yams, inherit from RelationDefinitionSchema instead.
Denis Laxalde <denis.laxalde@logilab.fr>, Rémi Cardona <remi.cardona@logilab.fr> [Wed, 22 Apr 2015 11:39:13 +0200] rev 10833
[schema] Let RQLConstraint inherit from BaseRQLConstraint instead of RQLVocabularyConstraint
There is apparently no reason for RQLConstraint to inherit from
RQLVocabularyConstraint as it gets its `repo_check` method from
`RepoEnforcedRQLConstraintMixIn` and RQLVocabularyConstraint (which inherits
from BaseRQLConstraint) actually only overrides that method. So simplify
inheritance by removing a useless level of indirection.
Adjust cw_unrelated_rql accordingly, where it was that RQLConstraint inherited
from RQLVocabularyConstraint.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 08 Sep 2015 06:48:48 +0200] rev 10832
[server] unormalize source logger's name to avoid encoding errors
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 22 Sep 2015 14:20:53 +0200] rev 10831
[entities] parameters should be given to fire_transition, else they are simply ignored
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 09:53:51 +0200] rev 10830
[entity] set _cw_adapters_cache in __init__ rather than on first use
Jérôme Roy <jerome.roy@logilab.fr> [Mon, 19 Oct 2015 23:23:46 +0000] rev 10829
fix typos and indentation in docstrings/docs
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Sep 2015 11:31:36 +0200] rev 10828
session.id → session.sessionid
Arthur Lutz <arthur.lutz@logilab.fr> [Wed, 04 Nov 2015 12:04:33 +0100] rev 10827
[test] test page_size problem (related to #8123231)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Nov 2015 11:26:22 +0100] rev 10826
[predicates] guard against non-integer page_size form parameter
Closes #8123231
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 15:56:39 +0100] rev 10825
[server/test] add test for db-dump command
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 15:55:35 +0100] rev 10824
[server] fix db-dump with sqlite
'gzip -c dbname > backupfile' needs to go through the shell.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 15:54:46 +0100] rev 10823
[serverctl] fix db-dump
Since changeset af47954c1015 we would die with:
AttributeError: 'ServerMigrationHelper' object has no attribute 'repo'
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 15:52:17 +0100] rev 10822
[server/test] sorting vs dict vs python3
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 18:08:34 +0200] rev 10821
[devtools] more sorted() vs dict vs python3
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 12:25:14 +0100] rev 10820
[web/application] return bytes from redirect_handler and validation_error_handler
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 17:54:26 +0200] rev 10819
[devtools] fix ResourceWarning: unclosed file tmpdb-__default_empty_db__.config
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 17:53:51 +0200] rev 10818
[serverconfig] fix ResourceWarning: unclosed file bootstrap_cubes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 14:29:53 +0200] rev 10817
Use cubicweb._
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 14:28:30 +0200] rev 10816
[syncschema] hashlib.md5() wants bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 14:27:04 +0200] rev 10815
[server/test] use next() builtin instead of next() method
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 14:26:32 +0200] rev 10814
[server/test] dict.iterkeys
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 18:10:58 +0100] rev 10813
[syncschema] don't arbitrarily remove constraints from the in-memory schema
For some constraint types, it may make sense to have several constraints
of that type simultaneously. In such a case, removing one of them from
the in-memory schema is wrong.
Closes #7446353
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 18:03:21 +0100] rev 10812
[server/test] don't leak timeout from one test class to the next
Reset SQL_CONNECT_HOOKS after we're done with this test class so the
next one doesn't inherit a timeout it doesn't want.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 16 Oct 2015 12:22:48 +0200] rev 10811
[server/test] CWAttribute.extra_props is Bytes
Julien Cristau <julien.cristau@logilab.fr> [Fri, 16 Oct 2015 17:12:40 +0200] rev 10810
[dataimport] give unicode objects to psycopg2 copy_from
Julien Cristau <julien.cristau@logilab.fr> [Fri, 16 Oct 2015 17:06:12 +0200] rev 10809
[dataimport] extid must be a bytes object
Julien Cristau <julien.cristau@logilab.fr> [Fri, 16 Oct 2015 17:04:30 +0200] rev 10808
[dataimport] import StringIO from io
Julien Cristau <julien.cristau@logilab.fr> [Fri, 16 Oct 2015 17:06:28 +0200] rev 10807
[dataimport] fix ucsvreader for python3
The csv module in python3 wants str, so use a StreamReader to feed
csv.reader and don't decode the output
Julien Cristau <julien.cristau@logilab.fr> [Wed, 14 Oct 2015 16:30:45 +0200] rev 10806
[server/test] import StringIO from io on python3
Don't change the import for python2, as we print a mix of unicode and
str.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 14 Oct 2015 16:18:25 +0200] rev 10805
[server/datafeed] drop URLLibResponseAdapter.info
I don't know where it's used
Julien Cristau <julien.cristau@logilab.fr> [Mon, 19 Oct 2015 14:29:06 +0200] rev 10804
[devtools] pass a key to sort() method
python3 dicts are not comparable
Julien Cristau <julien.cristau@logilab.fr> [Wed, 21 Oct 2015 17:21:18 +0200] rev 10803
[postcreate] properly set is_instance_of for bootstrap entities
Entities created before CWEType itself need the is/is_instance_of
relations created later. We were actually only inserting "is".
Closes #7656606.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 28 Oct 2015 17:39:30 +0000] rev 10802
[migration] re-try without print_function when compiling a script fails
As part of the python3 porting we added the __future__.print_function import to
cubicweb.migration. That started affecting all migration scripts it runs,
which may not be prepared. So if compiling a script results in SyntaxError,
try again without the print_function flag.
Closes #7935030
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 23 Sep 2015 15:32:17 +0200] rev 10801
[test] do not overwrite user's CW_CUBES_PATH in unittest_migration
Currently when you rely on your CW_CUBES_PATH environment variable to
locate cubes necessary for cubicweb's tests, the migration test crashes
because it overrides the env var.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 03 Nov 2015 16:00:34 +0100] rev 10800
[server/test] dict.itervalues() → iter(dict.values())
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 16 Sep 2015 16:04:17 +0200] rev 10799
make sync_schema_props_perms(<computed rtype>) work as expected
It currently ends up with an ExecutionError while we want to synchronize
permissions. This makes 3.21.1 migration of any application using computed
relation crashing.
Also, remove pre 3.6 compat code in hooks that prevent living schema update on
computed relation's permission changes.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 08 Oct 2015 13:51:54 +0200] rev 10798
[web/http_headers] use classmethod decorator
Julien Cristau <julien.cristau@logilab.fr> [Thu, 08 Oct 2015 13:45:00 +0200] rev 10797
[schema] use classmethod decorator
Julien Cristau <julien.cristau@logilab.fr> [Fri, 16 Oct 2015 16:44:36 +0200] rev 10796
[devtools] delete postgresql socket directory after killing the server
... or when failing to start it.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 27 Jul 2015 10:13:25 +0200] rev 10795
[skel] stop deleting cubes egg-info
It doesn't hurt and provides some metadata.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 06 Oct 2015 15:06:45 +0200] rev 10794
[dataimport] Update doc to reflect new API
relate() looks deprecated.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 26 Oct 2015 15:22:09 +0100] rev 10793
[server] fix generate_source_config regression on python2
lgc outputs "str" objects on python2 and python3, so we can't just use
io.StringIO (which expects unicode objects).
Fixes: c36cda9074c5
Christophe de Vienne <christophe@unlish.com> [Thu, 30 Jul 2015 11:11:12 +0200] rev 10792
[tests] Fix config.repository() in tests
The config.repository was overriden too late.
Closes #5778294
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 14 Oct 2015 15:49:03 +0200] rev 10791
[schema] RQL queries are always unicode objects in python 3
fixes commit 42c5bd7286b7.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 13 Oct 2015 16:12:37 +0200] rev 10790
[server/test] use relative import
Fixes py3k breakage
Julien Cristau <julien.cristau@logilab.fr> [Tue, 13 Oct 2015 11:34:37 +0200] rev 10789
[server/schemaserial] fix extra_props on py3k
json.dumps returns unicode, and json.load eats unicode, so add explicit
encoding/decoding.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 13 Oct 2015 11:30:48 +0200] rev 10788
[server/test] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 21:49:18 +0200] rev 10787
[web] fix Field.__str__ on py3k
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 21:48:50 +0200] rev 10786
[web] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 20:43:50 +0200] rev 10785
[web/test] CubicWebTC.view returns bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 18:43:41 +0200] rev 10784
[uilib] fix traceback on python3
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 18:43:05 +0200] rev 10783
[web] integer division
Julien Cristau <julien.cristau@logilab.fr> [Mon, 12 Oct 2015 18:42:38 +0200] rev 10782
[web/test] Binary eats bytes
Julien Cristau <julien.cristau@logilab.fr> [Tue, 06 Oct 2015 11:19:37 +0200] rev 10781
[devtools] make httptest module importable under py3k
Julien Cristau <julien.cristau@logilab.fr> [Tue, 06 Oct 2015 11:16:27 +0200] rev 10780
[web/test] CubicWebPublisher.handle_request returns bytes
Julien Cristau <julien.cristau@logilab.fr> [Tue, 06 Oct 2015 11:15:56 +0200] rev 10779
[web] base64 works on bytes not str (py3k)
Julien Cristau <julien.cristau@logilab.fr> [Tue, 06 Oct 2015 11:14:15 +0200] rev 10778
[web] accept unicode in parsed Authorization header
Julien Cristau <julien.cristau@logilab.fr> [Tue, 06 Oct 2015 11:07:22 +0200] rev 10777
[web] CubicWebPublisher.ajax_error_handler must return bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 17:57:03 +0200] rev 10776
[py3k] fix i18n
Julien Cristau <julien.cristau@logilab.fr> [Tue, 06 Oct 2015 11:44:51 +0200] rev 10775
Fix md5crypt and crypt_password test for python3
Make sure to always work with bytes for hashing.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 17:08:38 +0200] rev 10774
[server/test] use bytes for extid
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 16:59:18 +0200] rev 10773
[devtools/test] firstnames.txt is in latin1
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 16:54:12 +0200] rev 10772
[web/test] unicode → cubicweb._
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 16:52:26 +0200] rev 10771
[web/formwidgets] fix for py3k
no idea why we encode that key...
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 16:47:55 +0200] rev 10770
[sobjects] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 16:28:07 +0200] rev 10769
[server] fix unittest_security for py3k
- use source.binary_to_str instead of str(), helps when the backend
returns memoryviews
- fixup str vs bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 15:49:17 +0200] rev 10768
[py3k] make ldapfeed tests pass
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 15:48:19 +0200] rev 10767
[server] import filter from six.moves
Julien Cristau <julien.cristau@logilab.fr> [Mon, 05 Oct 2015 14:51:24 +0200] rev 10766
[ldapfeed] port to ldap3
python-ldap has no python3 support.
XXX I only checked that unittest_ldapfeed passes.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 14:13:26 +0200] rev 10765
[server/test] str vs bytes
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 10:08:00 +0200] rev 10764
[server/test] list() around map and zip
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 10:07:32 +0200] rev 10763
[server/test] to fold, unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 10:06:42 +0200] rev 10762
[server/test] delete test that doesn't make sense on python3
XXX if PY2?
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 10:06:05 +0200] rev 10761
[server/test] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 10:04:35 +0200] rev 10760
[server] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Fri, 02 Oct 2015 10:04:12 +0200] rev 10759
[py3k] fix building rset description for INSERT queries
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 12:34:49 +0200] rev 10758
[datafeed] use explicit encode/decode instead of casting to str
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 01 Oct 2015 12:33:58 +0200] rev 10757
[py3k] io.BytesIO
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 12:32:27 +0200] rev 10756
[py3k] get urllib foo from six.moves
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 12:15:14 +0200] rev 10755
[devtools] CubicWebTC._check_html may have to deal with unicode or bytes
If called with template=None, CubicWebTC.view will not go through
main-template, and return the unicode data from the view directly
instead of encoded data.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 12:02:02 +0200] rev 10754
[ext/test] fix test relying on repr(text)
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 12:01:28 +0200] rev 10753
[req] fix url_parse_qsl on py3
should be folded with previous conversion
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:57:40 +0200] rev 10752
[server/session] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:57:22 +0200] rev 10751
[web/test] str vs bytes
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:50:42 +0200] rev 10750
[web/ajax] fix AjaxController on python3
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:50:09 +0200] rev 10749
[web/test] str → bytes
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:43:33 +0200] rev 10748
[wsgi/test] use bytes instead of str for POST body
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:43:01 +0200] rev 10747
[devtools] 'dict_values' object does not support indexing
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:42:29 +0200] rev 10746
[multipart] decode form data before calling parse_qs in python 3
parse_qs eats and returns 'str' on both python versions.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:41:20 +0200] rev 10745
[multipart] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 10:06:58 +0200] rev 10744
[web] assert that CubicWebPublisher.handle_request returns bytes
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 18:28:57 +0200] rev 10743
[py3k] fix validateform controller
We need to return bytes not str.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 18:28:31 +0200] rev 10742
[web] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 18:05:00 +0200] rev 10741
[multipart] make sure form keys are not bytes
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 18:04:27 +0200] rev 10740
[web] unicode → six.text_type
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 18:03:53 +0200] rev 10739
[wsgi] don't convert form values
This is done earlier in multipart.py
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 16:52:29 +0200] rev 10738
[server] import input from six.moves
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 16:50:06 +0200] rev 10737
[server] don't convert user.login to bytes to generate sessionid
Julien Cristau <julien.cristau@logilab.fr> [Wed, 30 Sep 2015 16:14:29 +0200] rev 10736
[cwctl] stop playing tricks with std{out,err} buffering
Python3 doesn't allow unbuffered text I/O, because it doesn't make
sense.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:42:40 +0200] rev 10735
[py3k] CubicWebTC.app_handle_request returns bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:37:31 +0200] rev 10734
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 12 Oct 2015 21:06:45 +0200] rev 10733
[py3k] http headers should be ascii-only unicode objects
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 18:20:42 +0200] rev 10732
[py3k] Clarify IDownloadable expected types
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:31:44 +0200] rev 10731
[py3k] IDownloadable.download_data() returns bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:24:58 +0200] rev 10730
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:01:16 +0200] rev 10729
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:00:41 +0200] rev 10728
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 14:42:33 +0200] rev 10727
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 10:24:47 +0200] rev 10726
[py3k] PageInfo.source contains bytes
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:58:12 +0200] rev 10725
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:35:38 +0200] rev 10724
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:28:10 +0200] rev 10723
[py3k] Don't encode URLs
Python 3's urllib works with unicode objects.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:04:22 +0200] rev 10722
[tests] Stop counting pickle bytes in ResultSet tests
Between python 2's pickle and cPickle implementations, the various
protocol versions added in python 3, the length of the pickled string is
completely unpredictable.
Instead, do a simple round trip and test a few attributes.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 17:54:15 +0200] rev 10721
[tests] Port unittest_cwctl to py3k
On python 2, sys.stdout takes bytes-like objects whereas python 3's
takes unicode-like objects and handles the encoding on its own.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 17:51:58 +0200] rev 10720
[migration] NoneType is no longer comparable in py3k
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 12:33:26 +0200] rev 10719
Rename gettext to cwgettext, use stdlib gettext
cubicweb/gettext.py was a copy of Python 2.6's gettext.py with the
context patch from bug https://bugs.python.org/issue2504
Instead of keeping that full copy, just inherit from
gettext.GNUTranslations and add the context-related stuff.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 17:16:26 +0200] rev 10718
[py3k] MethodType no longer takes a class argument
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:03:19 +0200] rev 10717
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:02:20 +0200] rev 10716
[py3k] im_self → __self__
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:01:31 +0200] rev 10715
[py3k] Don't sort Action objects
In python 3, arbitrary objects are no longer sortable.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:25:25 +0200] rev 10714
[py3k] use inspect module to get a function's arguments
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 17:58:30 +0200] rev 10713
[py3k] __unicode__ and __str__
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 19:00:26 +0200] rev 10712
[test] call rql.parse with unicode objects
Allows to get same results from rqlst.as_string() in python 2 and 3
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 14:23:22 +0200] rev 10711
[py3k] replace cmp with key in sorted()
And stop sorting dicts in snippet_key()
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 12:35:10 +0200] rev 10710
[tests] remove useless sort
Useless in python 2, actively harmful in python 3 where arbitrary
objects are no longer sortable.
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 12:34:51 +0200] rev 10709
[py3k] dict methods no longer return indexable objects
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 12:03:12 +0200] rev 10708
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 11:58:29 +0200] rev 10707
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 11:54:12 +0200] rev 10706
[server] Port BFSS to py3k
The BFSS API changes in python 3:
* 'defaultdir' MUST be a unicode object
* 'fsencoding' MUST NOT be set
In python 2, fsencoding handles both the encoding of file paths on the
file system (utf-8 by default, but the system may actually be using
something else) and the encoding of file paths that will be stored in
the database.
So in python 3, we wipe the slate clean:
* rely on sys.getfilesystemencoding() to convert unicode objects to
bytes
* always encode paths to utf-8 for storage in the database
Caveat emptor / here be dragons:
* sys.getfilesystemencoding() depends on the current locale, which
therefore MUST be set properly
* when migrating an existing instance from py2 to py3, one MAY need
to reencode file paths stored in the database
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 15:35:26 +0200] rev 10705
[py3k] Binary.getvalue() returns bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 14:47:04 +0200] rev 10704
[py3k] ensure Binary objects are initialized with bytes
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 12:02:40 +0200] rev 10703
[py3k] __unicode__ and __str__
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 11:07:36 +0200] rev 10702
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 14:50:44 +0200] rev 10701
[mail] port to py3k
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:43:19 +0200] rev 10700
[web/views] port JSON views to py3k
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:43:02 +0200] rev 10699
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:41:12 +0200] rev 10698
[web/controller] req.form is supposed to contain unicode-data
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:40:03 +0200] rev 10697
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 17:22:41 +0200] rev 10696
[py3k] unicode vs str vs bytes vs the world
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 17:07:26 +0200] rev 10695
[web/views] Port csvexport views to py3k
There are a few hoops to jump through since python 3's csv module _is_
unicode aware.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 14:18:14 +0200] rev 10694
[py3k] unicode vs str vs bytes vs the world
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 16:07:29 +0200] rev 10693
[web/request] don't convert request parameters if py3k
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 16:02:04 +0200] rev 10692
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 15:26:56 +0200] rev 10691
[py3k] __getslice__ → __getitem__ with slice support
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 15:50:42 +0200] rev 10690
[py3k] __nonzero__ → __bool__
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 15:17:42 +0200] rev 10689
[py3k] unicode vs str vs bytes vs the world
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 13:57:21 +0200] rev 10688
[py3k] use six.add_metaclass
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 11:28:07 +0200] rev 10687
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 05 Oct 2015 17:10:36 +0200] rev 10686
[py3k] add list() around dict methods
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:43:19 +0200] rev 10685
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:39:09 +0200] rev 10684
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:30:05 +0200] rev 10683
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:23:35 +0200] rev 10682
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:22:41 +0200] rev 10681
[server/utils] crypt_password should always return bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:21:33 +0200] rev 10680
[py3k] str → six.binary_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:32:30 +0200] rev 10679
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:31:07 +0200] rev 10678
[server/utils] convert to py3k using six
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:28:05 +0200] rev 10677
[py3k] six.PY2
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:25:50 +0200] rev 10676
[py3k] use text/binary types from six
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:04:04 +0200] rev 10675
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:28:20 +0200] rev 10674
[py3k] bytes vs str
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:08:04 +0200] rev 10673
[py3k] io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 17:28:06 +0200] rev 10672
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 16:57:09 +0200] rev 10671
[py3k] bytes required for hashlib.{md5,sha1}()
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:40:23 +0200] rev 10670
[wsgi/test] add __main__ section
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 14:29:53 +0200] rev 10669
[py3k] use next builtin instead of next method
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:10:58 +0200] rev 10668
[web/views] use next builtin instead of next method
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 16:09:55 +0200] rev 10667
[py3k] declare meta classes using six.add_metaclass
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 11 Sep 2015 18:05:38 +0200] rev 10666
[py3k] replace '_ = unicode' in global scope (closes #7589459)
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 11 Sep 2015 18:01:36 +0200] rev 10665
[py3k] introduce cubicweb._ (related to #7589459)
The end goal is to stop relying on '_' being in the builtin scope. In
the mean time, deprecate the builtin '_' so that consumers are warned.
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:04:05 +0200] rev 10664
[py3k] dict.iterkeys → dict
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 15:09:22 +0200] rev 10663
[py3k] dict.itervalues → dict.values
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 16:15:03 +0200] rev 10662
[py3k] dict.iteritems → dict.items
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 18:04:57 +0200] rev 10661
implement __ne__ whenever we implement __eq__
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 17:15:03 +0200] rev 10660
[test] use unicode for rql queries (7/7)
Closes #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:28:55 +0200] rev 10659
[test] use unicode for rql queries (6/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:25:26 +0200] rev 10658
[test] use unicode for rql queries (5/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:25:16 +0200] rev 10657
[test] use unicode for rql queries (4/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:24:57 +0200] rev 10656
[test] use unicode for rql queries (3/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:24:42 +0200] rev 10655
[test] use unicode for rql queries (2/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Sep 2015 09:37:14 +0200] rev 10654
[test] use unicode for rql queries (1/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:26:56 +0200] rev 10653
[schema] improve normalization of RQLExpressions
Parse and print back the expression instead of manipulating the string.
Among other benefits, it means we don't mangle embedded string constants
that contain commas or multiple spaces.
Closes #6694426
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 13:43:57 +0200] rev 10652
[server/rql2sql] use VariableRef.is_equivalent explicitly instead of relying on __eq__
What we want to compare is the variable referenced by the VariableRef,
we should make that explicit.
Closes #6694406
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 12 Oct 2015 10:53:35 +0200] rev 10651
merge with 3.21.2
David Douard <david.douard@logilab.fr> [Fri, 02 Oct 2015 17:28:33 +0200] rev 10650
[statsd] fix the statsd logger (closes #7558147)
socket.inet_pton's second argument is the ip, not a couple (ip, port)
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 12 Oct 2015 09:19:07 +0200] rev 10649
Added tag 3.21.2, debian/3.21.2-1, centos/3.21.2-1 for changeset a5428e1ab364
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 18:01:46 +0200] rev 10648
[pkg] 3.21.2
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 18:03:40 +0200] rev 10647
[pkg] Remove leftover dep on pyro (closes #7479155)
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 17:52:14 +0200] rev 10646
merge with 3.20.10
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 29 Sep 2015 12:09:04 +0200] rev 10645
[migration] fix change_attribute_type to update the live schema
Closes #7170830
Julien Cristau <julien.cristau@logilab.fr> [Fri, 24 Jul 2015 09:57:08 +0200] rev 10644
[devtools] add has_cache for postgres (closes #5739624)
devtools stores info about existing dbs in the db handler, but in the
case of postgresql that doesn't take into account the path to the
cluster's datadir. Which means if we run two test modules (in the same
test run), we'll create a "__default_empty_db__" for the first one,
cache its existence, and then when moving on to the other module,
believe the template already exists (but since the datadir depends on
the test module's path, it does not). This patch is a bit of a kludge,
and it would be better to make the cache key include enough data to not
need this, but I'm not sure how to do that.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 22 Sep 2015 14:20:02 +0200] rev 10643
fix bad-caching of datetime with tz info at sql generation time
There is a special handling for datetime with tzinfo, where value was stored in
the query cache. The implementation of merge_args was simply overwriting
parameters of the query with those in the query cache, expecting no collision.
To fix this:
* handle replacement of tzinfo in merge_args, not at sql generation time
* add an assertion to ensure we've actually no collision
Closes #6978316
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 09:40:08 +0200] rev 10642
Added tag 3.20.10, debian/3.20.10-1, centos/3.20.10-1 for changeset 8f82e9523962
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:47:57 +0200] rev 10641
[pkg] 3.20.10
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:38:16 +0200] rev 10640
merge with 3.19.13
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:24:09 +0200] rev 10639
[devtools] Fix CubicWebTC.temporary_permissions
If the context manager is exited via an exception, the original
permissions should be restored.
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:09:10 +0200] rev 10638
[devtools] Use TestCase.assertGreater
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Sep 2015 08:32:49 +0200] rev 10637
[autoform] fix appearance of link to add inlined creation form
On entity creation, if there are some local permissions on the relation,
we have no way of checking them since neither the subject nor the object
of the relation exists yet. In such a case, we should add the link by
default, for consistency (see other places where we use
`may_have_permission`).
Closes #6711900
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 08 Oct 2015 11:47:15 +0200] rev 10636
[predicates] Simplify specified_etype_implements
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 08 Oct 2015 12:13:35 +0200] rev 10635
[web/views] Fix `has_editable_relation` predicate wrt inlined relations
Prevents the "modify" action from being shown when there is nothing to
edit.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 02 Sep 2015 15:31:18 +0200] rev 10634
[web/views] avoid propagation of NoSelectableObject in some case of inlined relations / permissions
When selecting an inlined creation form, we should catch the
NoSelectable exception that will be raised if the user cannot add
entities of the target type (this is not and cannot be verified earlier)
or if some other custom selector prevents the form from being selected.
Closes #6510921
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 07 Oct 2015 17:27:35 +0200] rev 10633
[server/test] bit of PEP8
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 25 Aug 2015 11:11:34 +0200] rev 10632
[migration] don't attempt to carry over values when renaming a computed relation
Without the fix in migractions.py, the introduced test crashes with an
operational error because of an attempt to write to a non-existing
relation table (computed relations are not materialized).
Closes #6304946
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 21 Aug 2015 11:01:08 +0200] rev 10631
consider .do_fti flag in index_entity method
as this method may be used from outsite the class (eg in UpdateFTIHook), this is
the proper way to consider it anyway.
Closes #6206636
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 06 Oct 2015 18:59:01 +0200] rev 10630
Added tag 3.19.13, debian/3.19.13-1, centos/3.19.13-1 for changeset f933a38d7ab5
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 06 Oct 2015 18:35:14 +0200] rev 10629
[pkg] 3.19.13
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 14:41:28 +0200] rev 10628
[migration/3.21] add support for sqlserver
Closes #7173702
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 15:49:10 +0200] rev 10627
moved_entities.extid may not be NULL
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 15:15:03 +0200] rev 10626
[server] use sqls_create_multicol_unique_index to index entities.extid
SQL Server's UNIQUE is not standards compliant, it doesn't accept two
NULL values. Related to #7173702.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 15:11:29 +0200] rev 10625
[server] fix checkintegrity with pyodbc
"msg % row" dies with "not enough arguments for format string" if row is
a pyodbc.Row.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 14:23:57 +0200] rev 10624
[schema] remove unique constraint on unlimited String attribute
SQL Server doesn't allow indexing (and thus unique constraints) on
nvarchar(max). Related to #7173702.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Mon, 05 Oct 2015 16:36:49 +0200] rev 10623
[sources/native] fix potential NameError (closes #7364249)
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 11:15:47 +0200] rev 10622
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 18:10:20 +0200] rev 10621
[devtools/testlib] Port CubicWebTC.view() to py3k
testlib.TestCase.set_description's argument will eventually be printed
out to sys.stdout/stderr. On python 2, this object takes bytes-like
objects (eg, str) whereas python 3's takes unicode-like objects and
handles the encoding on its own.
Thus the 'str' type can used in both versions to eventually display the
description on screen.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 18:12:44 +0200] rev 10620
[devtools/testlib] port 'fake_form' test to io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 16:45:03 +0200] rev 10619
[dataimport] port ucsvreader tests to io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 18:56:29 +0200] rev 10618
[py3k] io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 11 Sep 2015 17:40:23 +0200] rev 10617
[py3k] io.StringIO
Rémi Cardona <remi.cardona@free.fr> [Tue, 15 Sep 2015 12:51:27 +0200] rev 10616
Port cw.Binary to io.BytesIO
And add plenty of tests too!
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:26:07 +0200] rev 10615
[py3k] execfile → exec
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:33:47 +0200] rev 10614
[py3k] file → open
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 09:52:06 +0200] rev 10613
[py3k] six.integer_types
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 16:03:07 +0200] rev 10612
[py3k] basestring → six.string_types
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 11:23:51 +0200] rev 10611
[py3k] import CookieJar using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:50:25 +0200] rev 10610
[py3k] import urllib2 from six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 16:56:57 +0200] rev 10609
[py3k] import range using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:07:13 +0200] rev 10608
[py3k] import queue using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 14:59:06 +0200] rev 10607
[py3k] import filter using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 14:58:52 +0200] rev 10606
[py3k] import zip using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:36:32 +0200] rev 10605
[py3k] import SimpleCookie using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 12:40:57 +0200] rev 10604
[py3k] import HTTP client constants and exceptions using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 09:39:30 +0200] rev 10603
[py3k] import URL mangling functions using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 12:19:48 +0200] rev 10602
[py3k] import 'pickle' using six.moves
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 14:45:15 +0200] rev 10601
[pkg] Add dependency on six 1.4.0
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 11:32:09 +0200] rev 10600
[tests] Replace use of deprecated TestCase.assert_
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 16:30:25 +0200] rev 10599
[predicates] Simplify range(len()) iteration
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 15:34:09 +0200] rev 10598
[dataimport] Use pickle.dump instead of dumps
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 15:42:38 +0200] rev 10597
[web/facet] Simplify reversed/sorted calls
Julien Cristau <julien.cristau@logilab.fr> [Mon, 28 Sep 2015 13:47:30 +0200] rev 10596
[web/test] Use TestCase.setUpClass instead of setUpModule
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 11:16:10 +0200] rev 10595
Use isinstance() instead of type comparison
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:10:59 +0200] rev 10594
Unused imports
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 16:01:10 +0200] rev 10593
[py3k] tuple unpacking in function args
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 15:52:18 +0200] rev 10592
[py3k] ur'' is gone
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 15:50:29 +0200] rev 10591
[py3k] octals and long
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 15:29:25 +0200] rev 10590
[py3k] Fix raise with embedded traceback
python 3 removed the raise syntax with 2 and 3 expressions.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 14:52:09 +0200] rev 10589
[py3k] print function
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 14:28:06 +0200] rev 10588
[py3k] except as
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 11 Sep 2015 14:27:34 +0200] rev 10587
[py3k] backtick to repr
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Sep 2015 15:01:55 +0200] rev 10586
[hooks/syncschema] make sure CWUniqueTogetherConstraintDelOp happens before CWConstraintDelOp
SQLServer refuses to index an unlimited text column, so we should drop
unique_together constraints (which imply an index) before we drop size
constraints. Closes #5560601.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Wed, 23 Sep 2015 15:00:33 +0200] rev 10585
[hooks/syncschema] only call "ALTER TABLE" once when changing a size constraint
Until now we would:
- remove the old size constraint from the in-memory schema
- call update_rdef_column which removes the size restriction from the
column's type
- add the new constraint object
- call update_rdef_column which adds the size restriction back
This breaks on SQL Server when the column is involved in an index (e.g.
as part of a multi-column unique constraint), because in the
intermediate stage the column's type is "nvarchar(max)", which is not
indexable.
Of course we must still detect the case where a size constraint is
really dropped and update the db schema accordingly.
Closes #5557633.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Wed, 02 Sep 2015 15:24:46 +0200] rev 10584
[syncschema] only add to the `synchronized` set if all possible updates have been done
Otherwise a simple sync_schema(syncprops=False) turns the subsequent
sync_schema() calls into a no-op.
Closes #6510918.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 23 Jul 2015 12:32:51 +0200] rev 10583
[qunit] remove unused 'data_files' parameter
Its use was removed when we stoppped pointing firefox at file://
web/test/jstests/ajax_url2.html has never actually been used, it's only
been ever mentioned in a QUnit comment.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jul 2015 13:55:54 +0200] rev 10582
[urlpublish] RESTPathEvaluator now use vid_from_rset
This avoid cases where vid may be unexpectedly overwritten. For instance when
you define a custom vid for a mime type in VID_BY_MIMETYPE, it will currently be
overriden by the URL publisher when you access to /<etype> with the proper
Accept header.
To do so, a new 'check_table' argument is introduced, which may cause bw
compatibility problems if the function has been monkey-patched.
Also pep8 a bit the tests.
Closes #5705835
Julien Cristau <julien.cristau@logilab.fr> [Fri, 24 Jul 2015 16:19:39 +0200] rev 10581
[server/sources] use decode_extid in datafeed
Julien Cristau <julien.cristau@logilab.fr> [Fri, 24 Jul 2015 16:15:17 +0200] rev 10580
[server/sources] add decode_extid method
avoids having the same dance in both eid_type_source variants
Julien Cristau <julien.cristau@logilab.fr> [Wed, 29 Jul 2015 10:18:56 +0200] rev 10579
[server/repo] kill repo.pinfo()
session.cnxset is dead, this can't work.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 29 Jul 2015 10:18:23 +0200] rev 10578
[web/sessions] simplify session cleanup
session.cnx.check() is no longer a thing. It dates back to dbapi.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 29 Jul 2015 10:17:42 +0200] rev 10577
[server/repo] fix typo
Julien Cristau <julien.cristau@logilab.fr> [Fri, 24 Jul 2015 16:09:29 +0200] rev 10576
[server/sources] AbstractSource.__ne__
Seems confusing to have __eq__ but not __ne__.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 24 Jul 2015 16:09:37 +0200] rev 10575
[server/sources] fix docstring for eid_type_source
David Douard <david.douard@logilab.fr> [Mon, 27 Jul 2015 10:00:32 +0200] rev 10574
[views] fix ProcessInformationView: SESSION_MANAGER can be None (closes #5753280)
eg. with pyramid.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 06 Aug 2015 15:21:58 +0200] rev 10573
[server/migractions] drop mock_object
It doesn't seem to have ever been used.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 06 Aug 2015 15:24:16 +0200] rev 10572
[test] kill unused lgc.testlib imports
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 25 Aug 2015 11:09:22 +0200] rev 10571
[server/migractions] raising SystemExit sounds like a bad idea
Simply skip the action (rename_relation_type) with an early return.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 27 Jul 2015 09:27:18 +0200] rev 10570
[server/storage] rename 'session' variables to 'cnx'
We no longer deal with Session objects here.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 Jul 2014 17:52:45 +0200] rev 10569
[migration] remove repo_connect and use config.repository() instead
One less more redundant path to the repo.
Related to #3933480.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 Jul 2014 16:32:14 +0200] rev 10568
[repoapi, cwconfig] give a convenience method to get a repository from a config
This is a very common need.
The private repoapi._get_inmemory_repo becomes config.repository(...)
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 Jul 2014 15:50:23 +0200] rev 10567
[cwconfig] remove unused method
Not to be confused with serverconfig.migration_handler.
Rémi Cardona <remi.cardona@free.fr> [Tue, 19 Aug 2014 00:16:02 +0200] rev 10566
[captcha] Port to io.BytesIO
Aurelien Campeas <aurelien.campeas@logilab.fr> [Thu, 13 Feb 2014 17:00:40 +0100] rev 10565
[web/sessions] the session managers are definitely not components
Component (or AppObjects) take a _cw at __init__ time.
The session managers want a repository.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Thu, 13 Feb 2014 16:43:33 +0100] rev 10564
[web] the AuthenticationManager is no more an appobject
It is now explictly instanciated by the session manager.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Fri, 05 Dec 2014 16:22:02 +0100] rev 10563
[hooksmanager] remove very old unused module
Julien Cristau <julien.cristau@logilab.fr> [Fri, 31 Jul 2015 15:17:43 +0200] rev 10562
[devtools] fix CubicWebTC.assertDocTestFile (closes #5930028)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 29 Jul 2015 10:51:52 +0200] rev 10561
Added tag 3.21.1, debian/3.21.1-1, centos/3.21.1-1 for changeset a8a0de0298a5
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 18:59:14 +0200] rev 10560
[pkg] Let dh_installdocs deal with doc-base
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 18:57:21 +0200] rev 10559
[pkg] various debian packaging fixes
- stop using *.install.in files, just use wildcards in *.install
- switch to X-Python-Version (preferred for dh_python2)
- also call dh_python2 for /usr/share/cubicweb, not just public modules
- drop long obsolete ginco and erudi migration code from cubicweb-ctl.postinst
- fix cubicweb-ctl cleanup: purge code belongs in postrm, not prerm
- don't compress changelog.html
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 18:06:46 +0200] rev 10558
[pkg] 3.21.1
David Douard <david.douard@logilab.fr> [Tue, 28 Jul 2015 11:21:36 +0200] rev 10557
[web] fix AbstractSessionManager.clean_sessions (closes #5757240)
sessions were not closed if "last_usage_time = session.cnx.check()" actually
raises an AtributeError.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 21 Jul 2015 14:29:42 +0200] rev 10556
[migration/3.21] ask fewer questions
Several questions per table is just unreasonable.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 11:26:47 +0200] rev 10555
[server] typo fix
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 11:15:36 +0200] rev 10554
[test] check that we reject an rqlexpression in computed relation perms
Julien Cristau <julien.cristau@logilab.fr> [Tue, 28 Jul 2015 09:25:26 +0200] rev 10553
Fix (de)serialization of ComputedRelation read permissions
For normal relation types, permissions don't need to be stored since
they're just default values for the relation definitions. However,
computed relations are serialized (as CWComputedRType), while their
relation definitions are added at schema finalization time, and are only
in memory. So add the 'read_permission' relation to CWComputedRType,
and the appropriate hooks to save and restore those permissions.
To avoid having to touch yams, we drop the 'add' and 'delete'
permissions from the default computed relation permissions; this should
probably be backported there. The actual permissions (set on the
relation definitions) are hardcoded in finalize_computed_relations
anyway.
In deserialize_schema, the CWComputedRType handling needs to be delayed
a little bit, until after we've called deserialize_ertype_permissions.
The rql2sql test is adjusted because CWComputedRType has a 'name'
attribute and the 'read_permission' relation, which generates ambiguity
vs CWEType.
We add an explicit CubicWebRelationSchema.check_permission_definitions,
since we need to check both that computed and non-computed rtypes are
defined properly.
Based on report and initial patch from Christophe de Vienne (thanks!).
Closes #5706307