Thu, 10 Mar 2016 13:47:20 +0100 [web] fix headers on 304 responses (closes #11466875)
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.
Wed, 09 Mar 2016 18:01:44 +0100 [web/httpcache] GMTOFFSET no longer exists
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 18:01:44 +0100] rev 11173
[web/httpcache] GMTOFFSET no longer exists
Thu, 10 Mar 2016 13:47:20 +0100 [web] fix headers on 304 responses (closes #11466875)
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.
Mon, 29 Feb 2016 12:32:52 +0100 [rset] fix infinite recursion introduced in c1eb5a676c80
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.
Wed, 17 Feb 2016 10:02:03 +0100 pep8 unittest_application and unittest_formfields
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Feb 2016 10:02:03 +0100] rev 11170
pep8 unittest_application and unittest_formfields
Tue, 12 Jan 2016 14:31:14 +0100 [rset] Always complete attribute/relation caches in ResultSet.get_entity
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
Tue, 12 Jan 2016 17:36:28 +0100 [rset] refactoring of _build_entity method
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)
Thu, 25 Feb 2016 09:28:21 +0100 [entity] comparing two entities returns NotImplemented
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
Thu, 18 Feb 2016 09:24:43 +0100 [test] replace one use of lgc.testlib.unittest_main with unittest.main
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
Thu, 18 Feb 2016 09:23:18 +0100 [test] stop using TestCase.set_description
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.
Thu, 18 Feb 2016 09:20:57 +0100 [test] convert a lgc-style generative test into unittest2-style
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
Mon, 08 Feb 2016 16:10:22 +0100 [web/application] fix query log handling on python3
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.
Mon, 08 Feb 2016 16:32:36 +0100 [devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:36 +0100] rev 11162
[devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
Mon, 08 Feb 2016 16:32:07 +0100 [devtools/test] fix bytes vs text in test_base_url
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
Wed, 24 Feb 2016 17:34:56 +0100 [devtools] skip CubicWebServerTC on python3
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.
Mon, 08 Feb 2016 16:10:51 +0100 [web/test] switch unittest_web from twisted to wsgi
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.
Wed, 24 Feb 2016 17:31:56 +0100 [devtools] add CubicWebWsgiTC
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.
Mon, 08 Feb 2016 15:37:52 +0100 [web/test] return the hash of uploaded files in FileUploadTC instead of their contents
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.
Mon, 08 Feb 2016 15:29:06 +0100 [web/test] open() as a context manager
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:29:06 +0100] rev 11156
[web/test] open() as a context manager
Mon, 08 Feb 2016 15:28:14 +0100 [web/test] json.loads expects text, not bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:28:14 +0100] rev 11155
[web/test] json.loads expects text, not bytes
Mon, 08 Feb 2016 16:39:51 +0100 [wsgi] fix handling of multiple posted files
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.
Fri, 05 Feb 2016 18:23:00 +0100 [web/test] Reword doc string for fileupload ajaxfunc
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 18:23:00 +0100] rev 11153
[web/test] Reword doc string for fileupload ajaxfunc
Tue, 03 Mar 2015 12:26:47 +0100 [skeleton] do not import the __pkginfo__.py module to make cubes installable via setuptools
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
Tue, 23 Feb 2016 12:18:47 +0100 merge changes from 3.22.2
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:18:47 +0100] rev 11151
merge changes from 3.22.2
Tue, 23 Feb 2016 12:09:01 +0100 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 12:09:01 +0100] rev 11150
Added tag 3.22.2, debian/3.22.2-1, centos/3.22.2-1 for changeset 1b93ff37755b
Tue, 23 Feb 2016 11:45:54 +0100 [pkg] 3.22.2 3.22.2 centos/3.22.2-1 debian/3.22.2-1
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 11:45:54 +0100] rev 11149
[pkg] 3.22.2
Fri, 19 Feb 2016 11:23:11 +0100 [pkg] fix centos install
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 19 Feb 2016 11:23:11 +0100] rev 11148
[pkg] fix centos install
Fri, 19 Feb 2016 11:03:32 +0100 [datafeed] do NOT call commit in DataFeedXMLParser.process() (closes #10928592)
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.
Wed, 17 Feb 2016 14:00:39 +0100 [schema] restore constraint checking when running on old sqlite
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
Wed, 17 Feb 2016 17:20:29 +0100 [web/autoform] fix regression introduced by #5758ba784ebd
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
Tue, 22 Dec 2015 09:23:00 +0100 [tox] Generate test environments for Python 2.7 and 3.4
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
Tue, 26 Jan 2016 18:04:00 +0100 [notification] avoid using InternalManager when we've got a CWUser
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
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 tip