Fix up a handful of issues running RBTools on Python 3.

Review Request #9554 — Created Jan. 30, 2018 and submitted

Information

RBTools
master
b366fb3...

Reviewers

This change fixes up a variety of small things that were breaking:

  • Many unit tests were writing binary data to files opened with 'w',
    which doesn't work anymore.
  • The SVN client was applying a binary regex to unicode data. This one
    was just a mistake when I did the unicode conversions.
  • There was a typo in the perforce path detection (use of the name
    pattern instead of p)
  • The command-line logging was exploding because list2cmdline isn't
    written in such a way that it can deal with mixed unicode and
    bytestrings in command lines. The rest of subprocess is fine, it's
    just the logging, so I've changed it to pass in all of that as a
    unicode string.

This change also includes a couple small changes I had made to the
mercurial code trying to massage it into working before I realized how
little Python 3 support hg actually has. I've disabled that part of the
test suite for now.

Ran unit tests.

Description From Last Updated

Why do we do this when the following is clearer and more concise? class Author(object): fullname = 'name' email = …

brenniebrennie

This is perfectly fine, but there's also a handy six.PY3 constant we could use. Nice thing about that is it's …

chipx86chipx86

Given that we're duplicating this, I feel like it'd be a good opportunity to have a utility function of some …

chipx86chipx86
brennie
  1. 
      
  2. rbtools/clients/tests/test_git.py (Diff revision 1)
     
     
     
     
     
     
     
     
    Show all issues

    Why do we do this when the following is clearer and more concise?

    class Author(object):
        fullname = 'name'
        email = 'email'
    
    1. I really don't know. Investigating that seemed out of scope for this change.

  3. 
      
david
chipx86
  1. 
      
  2. rbtools/clients/tests/test_mercurial.py (Diff revision 2)
     
     
    Show all issues

    This is perfectly fine, but there's also a handy six.PY3 constant we could use. Nice thing about that is it's easily greppable.

  3. rbtools/commands/__init__.py (Diff revision 2)
     
     
     
     
     
     
    Show all issues

    Given that we're duplicating this, I feel like it'd be a good opportunity to have a utility function of some sort.

  4. 
      
david
chipx86
  1. Ship It!
  2. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to master (1daa626)