Fix issues caused by HttpRequest API change in Python 3

Review Request #10922 — Created Feb. 26, 2020 and submitted

david
rbintegrations
master
79c65a2...
rbintegrations

Python 3's urllib changed the request object so that instead of having a
get_data method, there's now just a data attribute. It turns out
that this attribute also existed in Python 2, although it wasn't the
official API. This change modifies the idonethis tests to use that
everywhere.

Ran rbintegrations unit tests.

Description From Last Updated

get_data() has been useless forever. It's literally just defined as return self.data, and we use .data pretty much everywhere else. ...

chipx86chipx86

json.loads() expects a Unicode string, but request.data should be bytes. Looks like this would apply to others. Can you verify ...

chipx86chipx86

Wanna change this to assertIsNone?

chipx86chipx86

And here?

chipx86chipx86
chipx86
  1. 
      
  2. get_data() has been useless forever. It's literally just defined as return self.data, and we use .data pretty much everywhere else. Let's just move to that directly.

  3. 
      
david
chipx86
  1. 
      
  2. rbintegrations/idonethis/tests.py (Diff revision 2)
     
     

    json.loads() expects a Unicode string, but request.data should be bytes.

    Looks like this would apply to others. Can you verify Python 3 tests are working here?

    1. So we weren't encoding to bytes before setting Request.data (which I'll fix), but json.loads() works on both str and bytes in Python 2 and 3.

    2. Just confirmed that it's Python 3.5 that doesn't support it. Python 3.6+ will decode.

  3. rbintegrations/idonethis/tests.py (Diff revision 2)
     
     

    Wanna change this to assertIsNone?

  4. rbintegrations/idonethis/tests.py (Diff revision 2)
     
     

    And here?

  5. 
      
david
chipx86
  1. Ship It!
  2. 
      
david
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to master (4a77e38)
Loading...