| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
ElementTree.XML was choking on them. I should unescape all whitespace
(e.g. tabs, etc.), but I'm lazy and don't have any XML that's strange
enough to need it ;).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reworked to allow "be comment" to handle unicode strings (see bug
e4ed63f6-9000-4d0b-98c3-487269140141). The solution was to escape all
the unicode to produce and ASCII string before calling
ElementTree.XML, and then converting back to unicode afterwards.
Added a unicode-containing comment to the end of bug
f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a so that there's a handy unicode
comment for testing.
XML headers (e.g. '<?xml version="1.0" encoding="UTF-8" ?>') are
now added to all xml output from be.
Switched non-text/* encoding library to base64 instead of
email.encoders, which makes that code in libbe/comment.py simpler.
Changed libbe/mapfile.py error encoding from string_escape to
unicode_escape so it can handle unicode.
Everything's still untested, and be-xml-to-mbox doesn't handle unicode
yet, but I felt this commit was getting a bit unwieldy ;).
|
| |
|
|
|
|
|
| |
Also adjusted libbe/comment.py to move to user-specified alt_ids,
rather than uuids.
|
| |
|
| |
|
|
|
|
|
| |
Previously it choked when options.content_type == None.
I'm not sure how that made it past test_usage.sh...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main problem was the encoding/decoding that was happening to _all_
input/output. Now many I/O activities have a `binary' option to
disable any encoding/decoding. The `binary' flag is set whenever the
comment content-type is not a text/* type.
In order to print valid XML (and make life easy on xml/be-xml-to-mbox),
non text/* types are printed out as base64-encoded MIME messages, so
be list --xml | be-xml-to-mbox | catmutt
works as you'd expect.
With the standard (non-XML) output from `be show', we just print a
message telling the user that we can't reasonably display the MIME
type and that they should use the XML output if they want to see it.
|
|
|
|
|
|
|
|
|
|
|
| |
Also added libbe.bug.cmp_last_modified, which handles part of
9ce2f015-8ea0-43a5-a03d-fc36f6d202fe. To do better we could extend
the RCS framework.
I also transcribed a few emails from the be-devel list onto their
relavent bugs and closed a few bugs.
Finally, I removed some left over InvalidValue cruft.
|
|
|
| |
$ be list --invalid-option | be comment <bug-id> -
|
| |
|
|
|
|
| |
The code is a bit uglier now, but it's a good deal faster :).
|
| |
|
|
|
|
|
|
|
|
| |
All the other commands currently use default_complete(), which has no
effect other than catching the --complete option and effectively
aborting execution.
This closes 8e1bbda4-35b6-4579-849d-117b1596ee99
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I borrowed most of the code for this.
get_encoding() is from Trac
http://trac.edgewall.org/browser/trunk/trac/util/datefmt.py
format_datetime()
Trac has a BSD license
http://trac.edgewall.org/wiki/TracLicense
I don't know if such a small snippet requires us to "reproduce the
above copyright" or where we need to reproduce it if it is needed.
The stdout/stdin replacement code follows
http://wiki.python.org/moin/ShellRedirectionFails
Because of the stdout replacement, the doctests executes now need an
optional 'test' argument to turn off replacement during the doctests,
otherwise doctest flips out (since it had set up stdout to catch
output, and then we clobbered it's setup).
References:
http://wiki.python.org/moin/Unicode
http://www.amk.ca/python/howto/unicode
http://www.python.org/dev/peps/pep-0100/
I also split libbe/editor.py off from libbe.utility.py and started
explaining the motivation for the BugDir init flags in it's docstring.
|
|
|
|
| |
Fixes bug b3c6da51-3a30-42c9-8c75-587c7a1705c5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I pushed a lot of the little helper functions into the main classes,
which makes it easier for me to keep track of what's going on. I'm
now at the point where I can run through `python test.py` with each of
the backends (by changing the search order in rcs.py
_get_matching_rcs) without any unexpected errors for each backend
(except Arch). I can also run `test_usage.sh` without non-Arch errors
either.
However, don't consider this a stable commit yet. The bzr backend is
*really*slow*, and the other's aren't blazingly fast either. I think
I'm rewriting the entire database every time I save it :p. Still, it
passes the checks. and I don't like it when zounds of changes build up.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lots of changes and just one commit. This started with bug
dac91856-cb6a-4f69-8c03-38ff0b29aab2, when I noticed that new bugs
were not being added appropriately with the Git backend. I'd been
working with Git trouble before with bug
0cad2ac6-76ef-4a88-abdf-b2e02de76f5c, and decided things would be
better off if I just scrapped the current RCS architecture and went to
a more object oriented setup. So I did. It's not clear how to add
support for an RCS backend:
* Create a new module that
- defines an inheritor of rsc.RCS, overriding the _rcs_*() methods
- provide a new() function for instantizating the new class
- defines an inheritor of rcs.RCStestCase, overiding the Class attribute
- defines 'suite' a unittest.TestSuite testing the module
* Add your new module to the rest in rcs._get_matching_rcs()
* Add your new module to the rest in libbe/tests.py
Although I'm not sure libbe/tests.py is still usefull.
The new framework clears out a bunch of hackery that used to be
involved with supporting becommands/diff.py. There's still room for
progress though. While implementing the new verision, I moved the
testing framework over from doctest to a doctest/unittest combination.
Longer tests that don't demonstrate a function's usage should be moved
to unittests at the end of the module, since unittest has better
support for setup/teardown, etc.
The new framework also revealed some underimplented backends, most
notably arch. These backends have now been fixed.
I also tweaked the test_usage.sh script to run through all the backends
if it is called with no arguments.
The fix for the dac bug turned out to be an unflushed file write :p.
|
|
|
|
|
|
|
|
|
|
|
| |
Using the __desc__ reduces documentation duplication. It's also better
than using __doc__, because __doc__ could (should?) be more than one-line
long, and we just want a short description to jog our memories in the
complete command list.
Also moved unique_name from cmdutil.py to names.py to avoid the
bug->cmdutil->bugdir->bug
cyclic include.
|
|
|
|
|
| |
Bug keeps timestamps in Bug.time, so working towards consitency for
Comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Comment should probably have it's own file too...
I also tried to clean up the interface for setting status and
severity. Both attributes involve selecting strings from predefined
lists. The lists of valid strings (and descriptions of each string)
are now defined in bug.py. The bug.py lists are then used to generate
appropriate help strings in becommands/status.py and severity.py.
This should make it easier to keep the help strings in synch with the
validation information.
The original status strings weren't documented, and I didn't know what
they all ment, so I elimanted some of them. 'in-progress' and
'disabled' are no longer with us. Of course, it would be simple to
add them back in if people don't agree with me on that. Due to the
loss of 'disabled' I had to change the status of two bugs (11e and
597) to 'closed'. I removed becommands/inprogress.py as well. It's
functionality was replaced by the more general status.py command,
which mimics the severity.py command.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Modified bug reports:
ecc: no tests for missing $EDITOR
status: open -> closed
|
| |
|
| |
|
| |
|
| |
|
|
|