Python, JavaScript, C# and Fortran code for hosting EPA web applications and data/model services. Consult the wiki for details: https://github.com/quanted/qed/wiki Served publicly at:
Fixed a regression in 1.11.3 on Python 2 where non-ASCII format values
for date/time widgets results in an empty value in the widget's HTML
(:ticket:28355).
Fixed QuerySet.union() and difference() when combining with
a queryset raising EmptyResultSet (:ticket:28378).
Fixed a regression in pickling of LazyObject on Python 2 when the wrapped
object doesn't have __reduce__() (:ticket:28389).
Fixed crash in runserver's autoreload with Python 2 on Windows with
non-str environment variables (:ticket:28174).
Corrected Field.has_changed() to return False for disabled form
fields: BooleanField, MultipleChoiceField, MultiValueField,
FileField, ModelChoiceField, and ModelMultipleChoiceField.
Fixed QuerySet.count() for union(), difference(), and
intersection() queries. (:ticket:28399).
Fixed ClearableFileInput rendering as a subwidget of MultiWidget
(:ticket:28414). Custom clearable_file_input.html widget templates
will need to adapt for the fact that context values
checkbox_name, checkbox_id, is_initial, input_text,
initial_text, and clear_checkbox_label are now attributes of
widget rather than appearing in the top-level context.
Fixed queryset crash when using a GenericRelation to a proxy model
(:ticket:28418).
===========================
factory-boy 2.8.1 -> 2.9.2
2.9.2
Bugfix:
Fix declaration corruption bug when a factory defined foo__bar__baz=1 and a caller
provided a foo__bar=x parameter at call time: this got merged into the factory's base
declarations.
Don't crash when debugging PostGenerationDeclaration
2.9.0
This version brings massive changes to the core engine, thus reducing the number of
corner cases and weird behaviourrs.
New:
:issue:275: factory.fuzzy and factory.faker now use the same random seed.
Add :class:factory.Maybe, which chooses among two possible declarations based
on another field's value (powers the :class:~factory.Trait feature).
:class:~factory.PostGenerationMethodCall only allows to pass one positional argument; use keyword arguments for
extra parameters.
Deprecation:
factory.fuzzy.get_random_state is deprecated, factory.random.get_random_state should be used instead.
factory.fuzzy.set_random_state is deprecated, factory.random.set_random_state should be used instead.
factory.fuzzy.reseed_random is deprecated, factory.random.reseed_random should be used instead.
pytest 3.1.3 -> 3.2.1
3.2.1
=========================
Bug Fixes
Fixed small terminal glitch when collecting a single test item. (2579 <https://github.com/pytest-dev/pytest/issues/2579>_)
Correctly consider / as the file separator to automatically mark plugin
files for rewrite on Windows. (2591 <https://github.com/pytest- dev/pytest/issues/2591>_)
Properly escape test names when setting PYTEST_CURRENT_TEST environment
variable. (2644 <https://github.com/pytest-dev/pytest/issues/2644>_)
Fix error on Windows and Python 3.6+ when sys.stdout has been replaced
with a stream-like object which does not implement the full io module
buffer protocol. In particular this affects pytest-xdist users on the
aforementioned platform. (2666 <https://github.com/pytest- dev/pytest/issues/2666>_)
Improved Documentation
Explicitly document which pytest features work with unittest. (2626 <https://github.com/pytest-dev/pytest/issues/2626>_)
3.2.0
=========================
Deprecations and Removals
pytest.approx no longer supports >, >=, < and <=
operators to avoid surprising/inconsistent behavior. See the docs <https://docs.pytest.org/en/latest/builtin.htmlpytest.approx> for more
information. (2003 <https://github.com/pytest-dev/pytest/issues/2003>)
All old-style specific behavior in current classes in the pytest's API is
considered deprecated at this point and will be removed in a future release.
This affects Python 2 users only and in rare situations. (2147 <https://github.com/pytest-dev/pytest/issues/2147>_)
A deprecation warning is now raised when using marks for parameters
in pytest.mark.parametrize. Use pytest.param to apply marks to
parameters instead. (2427 <https://github.com/pytest-dev/pytest/issues/2427>_)
Features
Add support for numpy arrays (and dicts) to approx. (1994 <https://github.com/pytest-dev/pytest/issues/1994>_)
Now test function objects have a pytestmark attribute containing a list
of marks applied directly to the test function, as opposed to marks inherited
from parent classes or modules. (2516 <https://github.com/pytest- dev/pytest/issues/2516>_)
Collection ignores local virtualenvs by default; --collect-in-virtualenv
overrides this behavior. (2518 <https://github.com/pytest- dev/pytest/issues/2518>_)
Allow class methods decorated as staticmethod to be candidates for
collection as a test function. (Only for Python 2.7 and above. Python 2.6
will still ignore static methods.) (2528 <https://github.com/pytest- dev/pytest/issues/2528>_)
Introduce mark.with_args in order to allow passing functions/classes as
sole argument to marks. (2540 <https://github.com/pytest- dev/pytest/issues/2540>_)
New cache_dir ini option: sets the directory where the contents of the
cache plugin are stored. Directory may be relative or absolute path: if relative path, then
directory is created relative to rootdir, otherwise it is used as is.
Additionally path may contain environment variables which are expanded during
runtime. (2543 <https://github.com/pytest-dev/pytest/issues/2543>_)
Introduce the PYTEST_CURRENT_TEST environment variable that is set with
the nodeid and stage (setup, call and teardown) of the test
being currently executed. See the documentation <https://docs.pytest.org/en/latest/example/simple.htmlpytest-current-test- environment-variable> for more info. (2583 <https://github.com/pytest- dev/pytest/issues/2583>)
Introduced pytest.mark.filterwarnings mark which allows overwriting the
warnings filter on a per test, class or module level. See the docs <https://docs.pytest.org/en/latest/warnings.htmlpytest-mark- filterwarnings> for more information. (2598 <https://github.com/pytest- dev/pytest/issues/2598>)
--last-failed now remembers forever when a test has failed and only
forgets it if it passes again. This makes it easy to fix a test suite by
selectively running files and fixing tests incrementally. (2621 <https://github.com/pytest-dev/pytest/issues/2621>_)
New pytest_report_collectionfinish hook which allows plugins to add
messages to the terminal reporting after collection has been finished
successfully. (2622 <https://github.com/pytest-dev/pytest/issues/2622>_)
Added support for PEP-415's <https://www.python.org/dev/peps/pep-0415/>_
Exception.__suppress_context__. Now if a raise exception from None is
caught by pytest, pytest will no longer chain the context in the test report.
The behavior now matches Python's traceback behavior. (2631 <https://github.com/pytest-dev/pytest/issues/2631>_)
Exceptions raised by pytest.fail, pytest.skip and pytest.xfail
now subclass BaseException, making them harder to be caught unintentionally
by normal code. (580 <https://github.com/pytest-dev/pytest/issues/580>_)
Bug Fixes
Set stdin to a closed PIPE in pytester.py.Testdir.popen() for
avoid unwanted interactive pdb (2023 <https://github.com/pytest- dev/pytest/issues/2023>_)
Add missing encoding attribute to sys.std* streams when using
capsys capture mode. (2375 <https://github.com/pytest- dev/pytest/issues/2375>_)
Fix terminal color changing to black on Windows if colorama is imported
in a conftest.py file. (2510 <https://github.com/pytest- dev/pytest/issues/2510>_)
Fix line number when reporting summary of skipped tests. (2548 <https://github.com/pytest-dev/pytest/issues/2548>_)
capture: ensure that EncodedFile.name is a string. (2555 <https://github.com/pytest-dev/pytest/issues/2555>_)
The options --fixtures and --fixtures-per-test will now keep
indentation within docstrings. (2574 <https://github.com/pytest- dev/pytest/issues/2574>_)
doctests line numbers are now reported correctly, fixing pytest-sugar122 <https://github.com/Frozenball/pytest-sugar/issues/122>. (2610 <https://github.com/pytest-dev/pytest/issues/2610>)
Fix non-determinism in order of fixture collection. Adds new dependency
(ordereddict) for Python 2.6. (920 <https://github.com/pytest- dev/pytest/issues/920>_)
Extend documentation for testing plugin code with the pytester plugin.
(971 <https://github.com/pytest-dev/pytest/issues/971>_)
Trivial/Internal Changes
Update help message for --strict to make it clear it only deals with
unregistered markers, not warnings. (2444 <https://github.com/pytest- dev/pytest/issues/2444>_)
Internal code move: move code for pytest.approx/pytest.raises to own files in
order to cut down the size of python.py (2489 <https://github.com/pytest- dev/pytest/issues/2489>_)
Renamed the utility function _pytest.compat._escape_strings to
_ascii_escaped to better communicate the function's purpose. (2533 <https://github.com/pytest-dev/pytest/issues/2533>_)
Improve error message for CollectError with skip/skipif. (2546 <https://github.com/pytest-dev/pytest/issues/2546>_)
Emit warning about yield tests being deprecated only once per generator.
(2562 <https://github.com/pytest-dev/pytest/issues/2562>_)
Ensure final collected line doesn't include artifacts of previous write.
(2571 <https://github.com/pytest-dev/pytest/issues/2571>_)
Fixed all flake8 errors and warnings. (2581 <https://github.com/pytest- dev/pytest/issues/2581>_)
Added fix-lint tox environment to run automatic pep8 fixes on the code.
(2582 <https://github.com/pytest-dev/pytest/issues/2582>_)
Turn warnings into errors in pytest's own test suite in order to catch
regressions due to deprecations more promptly. (2588 <https://github.com/pytest-dev/pytest/issues/2588>_)
Show multiple issue links in CHANGELOG entries. (2620 <https://github.com/pytest-dev/pytest/issues/2620>_)
redis 2.10.5 -> 2.10.6
2.10.6
Various performance improvements. Thanks cjsimpson
Fixed a bug with SRANDMEMBER where
Added HSTRLEN command. Thanks Alexander Putilin
Added the TOUCH command. Thanks Anis Jonischkeit
Remove unnecessary calls to the server when registering Lua scripts.
Thanks Ben Greenberg
SET's EX and PX arguments now allow values of zero. Thanks huangqiyin
PubSub connections that that encounter InterruptedErrors now
retry automatically. Thanks Carlton Gibson and Seth M. Larson
LPUSH and RPUSH commands run on PyPy now correctly returns the number
of items of the list. Thanks Jeong YunWon
Added support to automatically retry socket EINTR errors. Thanks
Thomas Steinacher
PubSubWorker threads started with run_in_thread are now daemonized
so the thread shuts down when the running process goes away. Thanks
Keith Ainsworth
Added support for GEO commands. Thanks Pau Freixes, Alex DeBrie and
Abraham Toriz
Made client construction from URLs smarter. Thanks Tim Savage
Added support for CLUSTER * commands. Thanks Andy Huang
The RESTORE command now accepts an optional replace boolean.
Thanks Yoshinari Takaoka
Attempt to connect to a new Sentinel if a TimeoutError occurs. Thanks
Bo Lopker
Fixed a bug in the client's __getitem__ where a KeyError would be
raised if the value returned by the server is an empty string.
Thanks Javier Candeira.
Socket timeouts when connecting to a server are now properly raised
as TimeoutErrors.
requests 2.18.2 -> 2.18.4
2.18.4
+++++++++++++++++++
Improvements
Error messages for invalid headers now include the header name for easier debugging
Dependencies
We now support idna v2.6.
2.18.3
+++++++++++++++++++
Improvements
Running $ python -m requests.help now includes the installed version of idna.
Bugfixes
Fixed issue where Requests would raise ConnectionError instead of
SSLError when encountering SSL problems when using urllib3 v1.22.
rollbar -> 0.13.12
0.13.12
Remove the Django request body from the payload as it can contain sensitive data. See 174
Allow users to shorten arbitrary parts of the payload. See 173
Fixed a bug when calling logging.exception() when not in an exception handler. Now it correctly determines it doesn't have any exception info and uses report_message() instead of report_exc_info().
0.11.1
Added a new configuration option to expose the serializer's whitelisted_types param
Allows users to whitelist types to be serialized using repr(obj) instead of str(type(obj))
Fixed a bug that was not taking the safe_repr option into account. See 87
0.11.0
Overhauled the scrubbing and serialization mechanisms to provide deep object scrubbing and better handling of UTF-8 data from local variables. See 75
This fixes a bunch of problems with reporting local variables, including UnicodeEncodeErrors and attempting to read variables after the thread they were in has died.
Local variables and payload data is now sent over in their original structure.
If a variable was a dict, it will be transmitted as a dict instead of turned into a string representation of the variable.
The entire payload is now scrubbed and URL password fields are scrubbed as well.
Added a Django example.
Wrote many, many more tests :)
Integrated the six library to provide cleaner support for Python3.
Added some additional scrub fields.
0.10.1
Added a warning message if init() is called more than once.
Fix a bug that was causing max recursion errors while collecting local variables. See 77
Added a configuration option, safe_repr: True which will cause payload serialization to use the type name for non-built-in objects.
This option defaults to True which may cause data reported to Rollbar to contain less information for custom types.
Prior to this change, serialization of custom objects called __repr__() which may have had undesired side effects.
Fixed a bug that did not correctly handle anonymous tuple arguments while gathering local variables.
0.9.14
Fix logging loop when using Flask in a non-request context, and also using the Rollbar logging handler. See 68
0.9.13
If present, get request from log record. Otherwise try to guess current request as usual.
0.9.12
Fix a bug that was causing a crash while reporting an error that happened in a Werkzeug request that had no request.json. See 64
0.9.11
Implement workarounds for NaN and Infinity "numbers" in payloads. See 62
exception_level_filters can now take a string that defines the class to filter, 38.
0.9.2
Added an option to disable SSL certificate verification, 36.
Added __version__ specifier to __init__.py.
0.9.1
New features:
For Tornado requests, gather the request start time. See 33
Add handler which uses Tornado's AsyncHTTPClient. To use this, set your 'handler' to 'tornado'. See 34
0.9.0
Improvements to RollbarHandler logging handler. It now:
extracts more information out of each record (i.e. metadata like pathname and creation time)
uses the format string, with arguments not yet replaced, as the main message body. This will result in much better grouping in Rollbar.
Note about upgrading from 0.8.x: unless you are using RollbarHandler, there are no breaking changes. If you are using RolbarHandler, then this will change the way your data appears in Rollbar (to the better, in our opinion).
0.8.3
Provide a way to blacklist types from being repr()'d while gathering local variables.
0.8.2
Fix uncaught ImproperlyConfigured exception when importing Rollbar in a Django REST Framework environment without a settings module loaded (28)
0.8.1
Only attempt local variable extraction if traceback frames are of the correct type, print a warning otherwise
Now support extracting data from Django REST framework requests
New enabled configuration setting
0.6.2
Fixed json request data formatting for reports in Bottle requests
Now send json request data for Django and Pyramid apps
Set framework and request context properly for all reports in Flask and Bottle apps
0.6.1
Added Django, Pyramid, Flask and Bottle support for default contexts.
0.6.0
report_message() now returns the UUID of the reported occurrence.
0.5.14
Fix bug with non-JSON post data in Flask
Add slightly better integration with Flask. See rollbar-flask-example for example usage.
0.5.13
Collect JSON post data in Flask when mimetype is application/json
0.5.12
Add sys.argv to server data
0.5.11
Don't report bottle.BaseResponse exceptions in the bottle plugin
0.5.10
Added code_version configuration setting
Added support for bottle request objects
0.5.9
Added a command line interface for reporting messages to Rollbar
0.5.8
Added allow_logging_basic_config config flag for compatability with Flask. If using Flask, set to False.
0.5.7
Added exception_level_filters configuration setting to customize the level that specific exceptions are reported as.
0.5.6
First argument to rollbar.report_exc_info() is now optional. You can now call it with no arguments from within an except block, and it will behave is if you had called like rollbar.report_exc_info(sys.exc_info())
0.5.5
Support for ignoring exceptions by setting exc._rollbar_ignore = True. Such exceptions reported through rollbar.report_exc_info() -- which is used under the hood in the Django and Pyramid middlewares -- will be ignored instead of reported.
0.5.4
Django: catch exceptions when patching the debugview, for better support for django 1.3.
0.5.3
Fixed bug when reporting messages without a request object
0.5.2
Fixed bug where django debug page can get patched twice
0.5.1
Catching possible malformed API responses
0.5.0
Rename to rollbar
0.4.1
report_exc_info() now takes two additional named args: extra_data and payload_data, like report_message().
on 429 response (over rate limit), log a warning but don't parse and print an exception.
0.3.2
Added new default scrub fields
0.3.1
Fixed pypi package
0.3.0
Merge django-ratchet and pyramid_ratchet into pyratchet
Add ability to write to a ratchet-agent log file
0.2.0
Add "person" support
0.1.14
Added payload_data arg to report_message()
0.1.13
Added extra_data arg to report_message()
0.1.12
Use custom JSON encoder to skip objects that can't be encoded.
Bump default timeout from 1 to 3 seconds.
0.1.11
Sensitive params now scrubbed out of POST. Param name list is customizable via the scrub_fields config option.
0.1.10
Add support for Tornado request objects (tornado.httpserver.HTTPRequest)
0.1.9
Fix support for Pyramid request objects
0.1.8
Add support for Django request objects
selenium 3.4.3 -> 3.5.0
3.5.0
Numerous test fixes
*Iterate over capabilities in a way to support py2.7 and py3
Fix W3C switching to window by name.
Support GeckoDriver addon install/uninstall commands 4215.
Move firefox_profile into moz:firefoxOptions.
Filter non-W3C capability names out of alwaysMatch.
Honor cmd line args passed to Service ctor (4167)
Add expected conditions based on URL to Python Expected Conditions 4160
Add network emulation to Chrome Python bindings (4011)
add warning when saving incorrectly named screenshot (4141)
Updates
Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.
Changelogs
coveralls 1.1 -> 1.2.0
django 1.11.3 -> 1.11.4
factory-boy 2.8.1 -> 2.9.2
pytest 3.1.3 -> 3.2.1
redis 2.10.5 -> 2.10.6
requests 2.18.2 -> 2.18.4
rollbar -> 0.13.12
selenium 3.4.3 -> 3.5.0
That's it for now!
Happy merging! 🤖