104 Commits

Author SHA1 Message Date
Fabien C. Y. Benureau
a58f1b1d5e
hotfix for #164 2018-08-27 11:52:52 +09:00
Olivier Mangin
42d75d1230
Merge branch 'master' into fix/doc_add 2018-08-20 13:25:40 +02:00
Olivier Mangin
c2e52ec4c4
Makes 'copy' the default for the add_doc configuration option. 2018-08-20 12:18:23 +02:00
Olivier Mangin
7dae35e722
Adds the statistics command. (Fixes #8) 2018-08-09 23:48:29 +02:00
Olivier Mangin
a8de97c327
Fixes #144: behavior of add_copy mode during add.
- correctly handles add_copy mode and configuration,
- add option top force 'copy' mode (since the default had been changed
in between from 'copy' to 'move' this is now needed),
- fixes assumption in one test that the default is 'copy' (in other
words the test was broken and ensuring that the functionality was broken
too.),
- do not try to delete the source when it is an URL.
2018-08-09 19:00:01 +02:00
Olivier Mangin
ea2bc7f732
Merge branch 'master' into fix87 2018-08-01 15:02:01 +02:00
Olivier Mangin
3d76501a5c
Merge branch 'master' into fix/pyfakefs37 2018-08-01 14:36:24 +02:00
Fabien C. Y. Benureau
c76c7607f9
Upgrade pyfakefs to current version
Fix #148. Also did some cleanup on the tests.
2018-08-01 14:22:18 +09:00
Olivier Mangin
5a47150aad
Adds option to ignore malformed bibtex files or entry during import. 2018-07-30 18:24:56 +02:00
Olivier Mangin
60650b874a
Addresses minor comments (error message and better test). 2018-07-30 17:46:04 +02:00
Olivier Mangin
8a7d143261
Improves behaviors related to bibtex decoding error.
- from editor input in add and edit commands,
- from files in import command.
2018-07-25 22:20:14 +02:00
Olivier Mangin
d8dc386a18
Fix fake input behavior in tests on unexpected input.
Because of the mechanism for catching exceptions in pubs, the
UnexpectedInput exception raised by FakeInput never reached the catch
statement in the CommandTestCase and raised a FakeSystemExit instead.

This commit monkey-patches the exception handler in the ui at the same
time as the patching of the input functions to ignore UnexptectedInput
at the ui level.
2018-07-25 19:59:23 +02:00
Olivier Mangin
fbd29d27a4
Merge pull request #141 from pubs/feat/editor_missing
error message when editor is missing
2018-07-25 17:23:06 +02:00
Olivier Mangin
8fe650c040
Use join for joining paths. 2018-07-25 12:44:15 +02:00
ksunden
a0525b5147 Remove unused /dev/null 2018-05-22 20:56:34 -05:00
ksunden
2f59b4f2ce Clean up tests 2018-05-22 20:16:50 -05:00
ksunden
aaf2ed52c1 Use mock to test url command 2018-05-22 10:32:43 -05:00
Fabien C. Y. Benureau
6cd74a9966
error message when editor is missing
simplified a bit the ui code, to remove unecessary out-of-class functions
(needed anyway because of ui.error calls).
2018-05-17 09:22:31 +09:00
Fabien C. Y. Benureau
913a5d77b5 unicode citekey in python2; removes 2018-04-10 14:55:55 +09:00
Fabien C. Y. Benureau
c7e9470300 implement requested changes for #133 2018-04-10 14:46:27 +09:00
Fabien C. Y. Benureau
dc4e118c3c make utf8 citekeys possible in python 2.7. closes #28
This involved many changes, some side effects of the change include:
- remove of all `u"abc"` forms, in favor of
  `from __future__ import unicode_literals`. Their usage was
  inconsistent anyway, leading to problems when mixing with
  unicode content.
- improve the tests, to allow printing for usecase even when
  crashing. Should make future test easier. This is done with a
  rather hacky `StdIO` class in `p3`, but it works.
- for some reason, the skipped test for Python 2 seems to work
  now. While the previous point might seem related, it is not clear
  that this is actually the case.
2018-04-10 14:45:54 +09:00
Fabien C. Y. Benureau
38133fc053 fix for utf8 citekeys 2018-04-10 14:44:01 +09:00
Olivier Mangin
bcf216183f
Fixes tests for printing help on --help and without argument.
(fix #135)
2018-03-27 15:44:20 -04:00
Olivier Mangin
6e39cea473 Adds --strict option to list to force strict unicode comparison. 2018-02-20 18:06:33 -05:00
Fabien C. Y. Benureau
8126a0e0b4 Fix bibtex testcase, closes #25.
Also, made pyfakefs a straight pypi requirement, rather than a
github one, as no dev feature is needed since the last release.
2018-02-16 17:53:56 +09:00
Olivier Mangin
328f2a6d5e Adds more checks and better error message against empty citekeys. 2018-01-25 22:37:11 -05:00
Olivier Mangin
860181e278 Adds argument to ignore fields in export. [Closes #67]
`pubs export --ignore-fields abstract,note CiteKey`
2018-01-07 13:40:06 -05:00
Olivier Mangin
3e31c4455e Fixes argument and adds tests for overwrite on import. 2017-12-11 15:49:06 -05:00
Bill Flynn
0c7ba85af9 Revisions subject to comments on PR #100
Additionally, reverted FakeSystemExit subclassing Exception, but added
an explicit __init__ so that we can emulate the SystemExit.code
functionality without having to change the superclass.
2017-12-08 17:49:19 -05:00
Bill Flynn
66c90c5d43 Added unittest to cover new behavior pubs
Unittest just checks that both `pubs` and `pubs --help` raise a
`SystemExit` exception with error code 0.  Due to how argparse
handles the `--help` keyword, this is the best way I could think to
provide test coverage without heavily modifying the parser structure
or the unittest infrastructure.

To ensure the `pubs` matches the behavior of `pubs --help`, it now
raises the same `SystemExit(0)` exception via `sys.exit(0)`.  And
in order to catch it in the unittest, I had to modify the
`FakeSystemExit` behavior slightly.
2017-11-30 14:48:50 -05:00
Bill Flynn
ac3a8d8bf2 Print help menu when no subcommands applied
Made subparsers not required in the main parser, but if no commands are parsed,
then the parser prints its help.  When a command is present, the normal
functionality preserved.

Removed the single unittest that checks for this exact behavior.
2017-11-28 17:32:13 -05:00
Olivier Mangin
a65873a7e0 Fixes abspath called on urls preventing to get content from url.
Fix #7
2017-10-19 15:40:58 -04:00
Olivier Mangin
47f5c918ea Fix #93: saves the modifications on edit -m. 2017-10-17 16:50:23 -04:00
Olivier Mangin
69d7587108 Adds test for configuration file content in usecase. 2017-08-01 23:43:06 -04:00
Fabien C. Y. Benureau
0942df3b50 Fix pubs conf command 2017-08-01 23:43:06 -04:00
Olivier Mangin
4ffd62fe9f [notes] Allow different file extension for note file (see #70). 2017-07-12 10:41:51 -04:00
Olivier Mangin
323fb8b674 Fixes indent and removes unused io import. 2017-07-11 17:13:39 -04:00
Fabien C. Y. Benureau
3b4cfe635d Fix tests for Python 2
Also, some cleanup in fake_env.py
2017-07-11 17:08:53 -04:00
Fabien C. Y. Benureau
ce4b66e9b4 Fix unittests for Python 3 2017-07-11 17:08:52 -04:00
Olivier Mangin
a5466c940e Prepare configuration loading for autocomplete.
In particular, tries to load configuration when no argument is given.
Also removes unused check option from load_conf.
2017-07-08 00:10:15 -04:00
Olivier Mangin
6c2f0f6f8d Moves editor commands to ui to avoid using with wrong editor values.
For now, the editor_input and edit_file functions do not make sense
outside of the context of an ui. Having them in the content module
was confusing. (See issue fixed by a600855.)
2017-05-24 13:51:02 -04:00
Fabien C. Y. Benureau
2aad93b526 Simplify, update the testsuite
Replace the in-house stubbing by the facilities offered
by pyfakefs for running tests. We don't use `io.open`
anymore, because pyfakefs does not stub it correctly.
We rely on a patched version of pyfakefs, as a few bug
remain in the official repo.
2016-06-05 21:48:19 +02:00
Fabien Benureau
e5b898c5c2 Cache implemented
The implementation is designed to be robust to filesystems having integers
or nanosecond stat time.

Added a requirements.txt file for the tests:
`pip install -r tests/requirements.txt` to install the necessary packages
to run the tests.

Fix #13, Fix #14
2016-01-23 02:03:02 +01:00
Fabien Benureau
620eef4ace Fix expectedFailure tests 2016-01-17 02:42:56 +01:00
Fabien Benureau
e979aae85b Better rename and error dialogue
info() messages now print on stdout. warning() and error() still
print on stderr.

Fix #50
2016-01-16 21:52:36 +01:00
Olivier Mangin
2d9fa9af94 Comments out failing test from #25. 2016-01-15 19:02:56 -05:00
Olivier Mangin
2720d13049 Moves test of config file creation to its own test. 2016-01-15 19:02:56 -05:00
Olivier Mangin
7f6dde2f0c Temporary fix ExpectedFailure does not handle SystemExit on python 2.
Actually the test not only is expected to fail but it misses a file
which causes an error instead of a failure on python 2. Should be
addressed by #25.
2016-01-15 19:02:56 -05:00
Fabien Benureau
b2ebc67f5e Handle Unicode BOM in bibfile
In particular, xml2bib file created without the `-nb` options would trip bibtexparser.

Fixes #23
2015-12-20 22:20:01 +01:00
Fabien Benureau
3b0ba0bb3c Test for leading space in citekeys
This test is expected to fail. Nose does not handle that yet (treats it as false).
As such, changes have been made to make tests discoverable by unittest.
You may want to uninstall nose and do something like:
alias nosetests="python -m unittest discover"
in your bashrc

Related: #25
2015-12-20 18:51:43 +01:00