Commit Graph

182 Commits

Author SHA1 Message Date
Florian Bruhin
a18104529a tox requirements: Update virtualenv to 15.0.3 2016-08-07 11:38:22 +02:00
Florian Bruhin
8206efc0c2 requirements: Update setuptools to 25.1.6 2016-08-07 11:37:19 +02:00
Florian Bruhin
747be14118 Also add qutebrowser dependencies to tests-git req 2016-08-05 14:32:41 +02:00
Florian Bruhin
959b076236 Add requirements-test-git.txt
This is useful to track some breakage in test dependencies before stuff
actually goes haywire.
2016-08-05 14:29:00 +02:00
Florian Bruhin
2114230739 requirements: Update setuptools to 25.1.4 2016-08-05 12:42:08 +02:00
Florian Bruhin
7b7ff53fc1 test requirements: Update pytest-mock to 1.2
- Try to import mock first instead of unittest.mock. This gives the user
  flexibility to install a newer mock version from PyPI instead of using
  the one available in the Python distribution.
- mock.sentinel is now aliased as mocker.sentinel for convenience.
2016-08-03 09:27:50 +02:00
Florian Bruhin
d3192077b4 test requirements: Update beautifulsoup4 to 4.5.1
* Fixed a reported (but not duplicated) bug involving processing
  instructions fed into the lxml HTML parser.
2016-08-03 09:27:24 +02:00
Florian Bruhin
53b0cf85ef pylint requirements: Add github3.py 2016-08-02 22:45:08 +02:00
Florian Bruhin
0345e62348 requirements: Update setuptools to 25.1.3 2016-08-02 16:34:35 +02:00
Florian Bruhin
e99d75c18d requirements: Update setuptools to 25.1.2 2016-08-02 09:45:11 +02:00
Jan Verbeek
141e79f297 Add rss userscript 2016-08-01 15:55:13 +02:00
Florian Bruhin
12f506073a flake8/pylint reqs: Update mccabe to 0.5.2
When opening files ourselves, make sure we always name the file variable
2016-08-01 10:06:08 +02:00
Florian Bruhin
2e40bd3a36 tox: Update pytest-qt to 2.0.0
See #1702.

Breaking Changes

With pytest-qt 2.0, we changed some defaults to values we think are much
better, however this required some backwards-incompatible changes:

- pytest-qt now defaults to using PyQt5 if PYTEST_QT_API is not set.
  Before, it preferred PySide which is using the discontinued Qt4.
- Python 3 versions prior to 3.4 are no longer supported.
- The @pytest.mark.qt_log_ignore mark now defaults to extend=True, i.e.
  extends the patterns defined in the config file rather than overriding
  them. You can pass extend=False to get the old behaviour of overriding
  the patterns.
- qtbot.waitSignal now defaults to raising=True and raises an exception
  on timeouts. You can set qt_wait_signal_raising = false in your config
  to get back the old behaviour.
- PYTEST_QT_FORCE_PYQT environment variable is no longer supported. Set
  PYTEST_QT_API to the appropriate value instead or the new qt_api
  configuration option in your pytest.ini file.

New Features

- From this version onward, pytest-qt is licensed under the MIT license.
- New qtmodeltester fixture to test QAbstractItemModel subclasses.
- waitSignal and waitSignals can receive an optional callback that can
  evaluate if the arguments of emitted signals should resume execution
  or not.
- Now which Qt binding pytest-qt will use can be configured by the
  qt_api config option.
- While pytestqt.qt_compat is an internal module and shouldn't be
  imported directly, it is known that some test suites did import it.
  This module now uses a lazy-load mechanism to load Qt classes and
  objects, so the old symbols (QtCore, QApplication, etc.) are no longer
  available from it.

Other Changes

- Exceptions caught by pytest-qt in sys.excepthook are now also printed
  to stderr, making debugging them easier from within an IDE.
2016-07-29 09:12:06 +02:00
Florian Bruhin
baca1bcde2 travis: Remove testing on Ubuntu Wily 2016-07-29 09:10:02 +02:00
Florian Bruhin
f218d5d4b6 Try harder to pin pip/setuptools 2016-07-29 09:03:31 +02:00
Florian Bruhin
3aa5eb86fb requirements: Update mccabe to 0.5.1
- Set default maximum complexity to -1 on the class itself
2016-07-28 15:55:41 +02:00
Florian Bruhin
263ecee1a3 flake8 reqs: Update flake8-string-format to 0.2.3
Properly register with Flake8 so it will be selected on Flake8 3.x by
default and it can be selected on Flake8 2.x.
2016-07-27 19:41:24 +02:00
Florian Bruhin
7605a4fb0c tests: Use pytest-warnings to handle warnings 2016-07-27 18:28:08 +02:00
Florian Bruhin
2970bbcf03 codeov/test requirements: Update coverage to 4.2
Version 4.2
------------

- Since concurrency=multiprocessing uses subprocesses, options specified
  on the coverage.py command line will not be communicated down to them.
  Only options in the configuration file will apply to the subprocesses.
  Previously, the options didn't apply to the subprocesses, but there
  was no indication. Now it is an error to use
  --concurrency=multiprocessing and other run-affecting options on the
  command line. This prevents failures like those reported in issue 495.
- Filtering the HTML report is now faster, thanks to Ville Skyttä.

Version 4.2b1
-------------

Work from the PyCon 2016 Sprints!

- BACKWARD INCOMPATIBILITY: the coverage combine command now ignores an
  existing .coverage data file. It used to include that file in its
  combining. This caused confusing results, and extra tox "clean" steps.
  If you want the old behavior, use the new coverage combine --append
  option.
- The concurrency option can now take multiple values, to support
  programs using multiprocessing and another library such as eventlet.
  This is only possible in the configuration file, not from the command
  line. The configuration file is the only way for sub-processes to all
  run with the same options.
- Using a concurrency setting of multiprocessing now implies --parallel
  so that the main program is measured similarly to the sub-processes.
- When using automatic subprocess measurement, running coverage commands
  would create spurious data files. This is now fixed.
- A new configuration option, report:sort, controls what column of the
  text report is used to sort the rows.
- The HTML report has a more-visible indicator for which column is being
  sorted.
- If the HTML report cannot find the source for a file, the message now
  suggests using the -i flag to allow the report to continue.
- When reports are ignoring errors, there's now a warning if a file
  cannot be parsed, rather than being silently ignored.
- A new option for coverage debug is available: coverage debug config
  shows the current configuration.
- Running coverage as a module (python -m coverage) no longer shows the
  program name as __main__.py.
- The test_helpers module has been moved into a separate pip-installable
  package: unittest-mixins.
2016-07-27 06:37:02 +02:00
Florian Bruhin
94f006a675 pylint requirements: Update astroid to 1.4.8
* Add `returns` into the proper order in FunctionDef._astroid_fields

  The order is important, since it determines the last child,
  which in turn determines the last line number of a scoped node.
2016-07-27 06:32:29 +02:00
Florian Bruhin
8f42fcf627 Merge branch 'focuspass' of https://github.com/paretje/qutebrowser into paretje-focuspass 2016-07-27 00:15:15 +02:00
Kevin Velghe
8d091b2ae8 Drop focus after field has been filled 2016-07-26 21:25:04 +02:00
Florian Bruhin
a6af9d7d35 flake8 reqs: Undo accidental pep8 downgrade 2016-07-26 16:51:45 +02:00
Florian Bruhin
d19c7012a5 flake8 reqs: Update flake8-docstrings to 1.0.2
- Use pycodestyle to get standard-in.
2016-07-26 16:51:19 +02:00
Florian Bruhin
b30773aa68 flake8 requirements: Add comment for pep8 pin 2016-07-26 16:14:21 +02:00
Florian Bruhin
54b9ead0d0 flake8 reqs: Update flake8-docstrings to 1.0.1
1.0.1
-----

Make sure this works out of the box (is enabled by default) with
Flake8 3.0

1.0.0
-----

Switch dependency name to pydocstyle. pep257 was renamed to pydocstyle,
this update switches the requirement to that new package name. Since
we’re swapping out dependencies, we’ve issued a major version bump.
2016-07-26 16:12:23 +02:00
Kevin Velghe
e9e780ac56 Focus fields before filling them 2016-07-26 16:12:19 +02:00
Kevin Velghe
0f07198271 Don't pass 2 arguments to shebang
On most platforms (according to shellcheck), you can't pass two
arguments in a shebang. I.e. on Debian you get:
/usr/bin/env: ‘bash -e’: No such file or directory
2016-07-26 11:48:26 +02:00
Florian Bruhin
ded733c674 test requirements: Update CherryPy to 7.1.0
Implement systemd's socket activation mechanism for CherryPy servers,
based on work sponsored by Endless Computers.

Socket Activation allows one to setup a system so that systemd will sit
on a port and start services 'on demand' (a little bit like inetd and
xinetd used to do).
2016-07-25 22:59:28 +02:00
Florian Bruhin
c618983b3d flake8 requirements: Update flake8-tuple to 0.2.12
flake8>=3.0.0 compatibility
2016-07-25 18:07:41 +02:00
Florian Bruhin
b8ea3d3c39 flake8 requirements: Pin flake8 properly 2016-07-25 18:07:31 +02:00
Florian Bruhin
3efb41f743 flake8 requirements: Filter to flake8 < 3.0 2016-07-25 16:39:30 +02:00
Florian Bruhin
9f45a27a2a test requirements: Update CherryPy to 7.0.0
7.0.0
-----

Removed the long-deprecated backward compatibility for
legacy config keys in the engine. Use the config for the
namespaced-plugins instead:

 - autoreload_on -> autoreload.on
 - autoreload_frequency -> autoreload.frequency
 - autoreload_match -> autoreload.match
 - reload_files -> autoreload.files
 - deadlock_poll_frequency -> timeout_monitor.frequency

6.2.1
-----

Fix KeyError in Bus.publish when signal handlers set in config.
2016-07-25 13:06:32 +02:00
Florian Bruhin
811361dbbe test requirements: Update beautifulsoup4 to 4.5.0
* Beautiful Soup is no longer compatible with Python 2.6. This
  actually happened a few releases ago, but it's now official.

* Beautiful Soup will now work with versions of html5lib greater than
  0.99999999.

* If a search against each individual value of a multi-valued
  attribute fails, the search will be run one final time against the
  complete attribute value considered as a single string. That is, if
  a tag has class="foo bar" and neither "foo" nor "bar" matches, but
  "foo bar" does, the tag is now considered a match.

  This happened in previous versions, but only when the value being
  searched for was a string. Now it also works when that value is
  a regular expression, a list of strings, etc.

* Fixed a bug that deranged the tree when a whitespace element was
  reparented into a tag that contained an identical whitespace
  element.

* Added support for CSS selector values that contain quoted spaces,
  such as tag[style="display: foo"].

* Corrected handling of XML processing instructions.

* Corrected an encoding error that happened when a BeautifulSoup
  object was copied.

* The contents of <textarea> tags will no longer be modified when the
  tree is prettified.

* When a BeautifulSoup object is pickled but its tree builder cannot
  be pickled, its .builder attribute is set to None instead of being
  destroyed. This avoids a performance problem once the object is
  unpickled.

* Specify the file and line number when warning about a
  BeautifulSoup object being instantiated without a parser being
  specified.

* The `limit` argument to `select()` now works correctly, though it's
  not implemented very efficiently.

* Fixed a Python 3 ByteWarning when a URL was passed in as though it
  were markup. Thanks to James Salter for a patch and
  test.

* We don't run the check for a filename passed in as markup if the
  'filename' contains a less-than character; the less-than character
  indicates it's most likely a very small document.
2016-07-20 14:07:01 +02:00
Florian Bruhin
dfbd31f35f Use /usr/bin/env shebang for bash userscripts
See #1665
2016-07-20 11:06:35 +02:00
Florian Bruhin
d271c31edf pylint requirements: Update pylint to 1.6.4
* Recurse into all the ancestors when checking if an object is an exception

  Since we were going only into the first level, we weren't inferring
  when a class used a metaclass which defined a base Exception class
  for the aforementioned class.
2016-07-19 19:22:25 +02:00
Florian Bruhin
4161f4d6eb test requirements: Update CherryPy to 6.2.0
* Added tool to automatically convert request params based on type
  annotations (primarily in Python 3). For example:

    @cherrypy.tools.params()
    def resource(self, limit: int):
        assert isinstance(limit, int)
2016-07-19 09:36:51 +02:00
Florian Bruhin
70f14329e3 pylint requirements: Update pylint to 1.6.3
* Do not crash when inferring uninferable exception types for docparams
  extension
2016-07-19 09:24:51 +02:00
Florian Bruhin
f597b052c6 test requirements: Update CherryPy to 6.1.1
Fix issue where autoreload fails when the host interpreter for CherryPy
was launched using ``python -m``.
2016-07-17 12:00:54 +02:00
Florian Bruhin
321e5319c6 pylint requirements: Update pylint to 1.6.2
* Do not crash when printing the help of options with default regular
  expressions
* More granular versions for deprecated modules.
* Do not crash in docparams when we can't infer the exception types.
2016-07-15 11:06:46 +02:00
Florian Bruhin
a8dc940b73 test/vulture reqs: Update vulture to 0.10
* Detect unused function and method arguments.
* Detect unused *args and **kwargs parameters.
* Change license from GPL to MIT.
2016-07-14 23:17:39 +02:00
Florian Bruhin
2848ab1904 test requirements: Update CherryPy to 6.1.0
* Combined wsgiserver2 and wsgiserver3 modules into a single module,
  `cherrypy.wsgiserver`.
2016-07-14 07:07:00 +02:00
Florian Bruhin
a436468026 test requirements: Update hypothesis to 3.4.2
- Test functions defined using @given can now be called from other
  threads
- Attempting to delete a settings property would previously have
  silently done the wrong thing. Now it raises an AttributeError.
- Creating a settings object with a custom database_file parameter was
  silently getting ignored and the default was being used instead. Now
  it’s not.
2016-07-13 20:21:20 +02:00
Florian Bruhin
4328169274 flake8 requirements: Get rid of ebb-lint
We've had many checks disabled - these are the ones we actually lose:

    L104
    Docstrings must use Napoleon, not reStructuredText fields.

    L205
    __init__.py is not allowed to contain function or class definitions.

    L206
    Implicit relative imports are not allowed.

    L208
    Pokémon exception handling is always a mistake. If the intent is
    really to catch and ignore exceptions, explicitly name which
    exception types to silence.

    L209
    return, del, raise, assert, print (in python 2, without
    print_function) yield, and yield from are statements, not functions,
    and as such, do not require parentheses.

    L210
    Instead of intentionally relying on the side effects of map, filter,
    or a comprehension, write an explicit for loop.

    L211
    Using map or filter with a lambda as the first argument is always
    better written as list comprehension or generator expression. An
    expression is more readable and extensible, and less importantly,
    doesn't incur as much function call overhead.

    L212
    Using @staticmethod is always wrong.

    L301
    Files must end with a trailing newline.

    L303
    noqa is ignored, and as such, # noqa comments should be deleted to
    reduce pointless noise.

However, most of those are also checked by pylint (and the rest I don't
really care about), and ebb-lint increases flake8's runtime a lot
(45s -> almost 2min).
2016-07-13 07:24:10 +02:00
Florian Bruhin
038f803180 flake8 requirements: Update flake8-putty to 0.4.0
- Microsoft Windows filename selector fixes, with Appveyor CI testing
- Allow multiple codes to be disabled by per-line comments
- Allow comment after each rule line
- Prevent use with flake8 v3
- Support both pep8 and pycodestyle in test suite
2016-07-12 14:16:04 +02:00
Florian Bruhin
fc2787dd72 Merge branch 'taskadd' of https://github.com/rcorre/qutebrowser into rcorre-taskadd 2016-07-11 21:14:21 +02:00
Florian Bruhin
63b8d225e8 pylint requirements: pylint 1.6
Closes #1632.

new: mccabe
new: isort
deleted: colorama

astroid 1.4.7
-------------

* Stop saving assignment locals in ExceptHandlers, when the context is a store.

  This fixes a tripping case, where the RHS of a ExceptHandler can be redefined
  by the LHS, leading to a local save. For instance, ``except KeyError, exceptions.IndexError``
  could result in a local save for IndexError as KeyError, resulting in potential unexpected
  inferences. Since we don't lose a lot, this syntax gets prohibited.

pylint 1.6.0
------------

* Added a new extension, `pylint.extensions.mccabe`, for warning
  about complexity in code.

* Deprecate support for --optimize-ast.
* Deprecate support for the HTML output.
* Deprecate support for --output-files.

* Fixed a documentation error for the check_docs extension.

* Made the list of property-defining decorators configurable.

* Fix a bug where the top name of a qualified import was detected as unused variable.

* bad-builtin is now an extension check.

* generated-members support qualified name through regular expressions.

  For instance, one can specify a regular expression as --generated-members=astroid.node_classes.*
  for ignoring every no-member error that is accessed as in `astroid.node_classes.missing.object`.

* Add the ability to ignore files based on regex matching, with the new ``--ignore-patterns``
  option.

  This allows for multiple ignore patterns to be specified. Rather than
  clobber the existing ignore option, we introduced a new one called
  ignore-patterns.

* Added a new error, 'trailing-newlines', which is emitted when a file
  has trailing new lines.

* Add a new option, 'redefining-builtins-modules', for controlling the modules
  which can redefine builtins, such as six.moves and future.builtins.

* 'reimported' is emitted when the same name is imported from different module.

* Add a new recommendation checker, 'consider-iterating-dictionary', which is emitted
  which is emitted when a dictionary is iterated through .keys().

* Use the configparser backport for Python 2

  This fixes a problem we were having with comments inside values, which is fixed
  in Python 3's configparser.

* A new error was added, 'invalid-length-returned', when the `__len__`
  special method returned something else than a non-negative number.

* Switch to using isort internally for wrong-import-order.

* check_docs extension can find constructor parameters in __init__.

* Don't warn about invalid-sequence-index if the indexed object has unknown base
  classes.

* Don't crash when checking, for super-init-not-called, a method defined in an if block.

* Do not emit import-error or no-name-in-module for fallback import blocks by default.

  Until now, we warned with these errors when a fallback import block (a TryExcept block
  that contained imports for Python 2 and 3) was found, but this gets cumbersome when
  trying to write compatible code. As such, we don't check these blocks by default,
  but the analysis can be enforced by using the new ``--analyse-fallback-block`` flag.

pylint 1.6.1
------------

* Use environment markers for supporting conditional dependencies.
2016-07-11 13:00:08 +02:00
Florian Bruhin
216d8c3c13 test requirements: Update hypothesis to 3.4.1
On Windows when running two Hypothesis processes in parallel (e.g. using
pytest-xdist) they could race with each other and one would raise an
exception due to the non-atomic nature of file renaming on Windows and
the fact that you can't rename over an existing file. This is now fixed.
2016-07-11 12:45:47 +02:00
Ryan Roden-Corrent
06adfc5bff Leverage +LATEST in taskadd userscript.
This is cleaner than parsing the output of `task`.
2016-07-06 08:04:06 -04:00
Florian Bruhin
ab123b8c80 Merge branch 'userscript_vars' of https://github.com/blyxxyz/qutebrowser into blyxxyz-userscript_vars 2016-07-06 13:25:16 +02:00