[ 
https://issues.apache.org/jira/browse/AMBARI-6294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Greg Hill reopened AMBARI-6294:
-------------------------------


This is not how Python developers work.  The package should be installable via 
pip in a working state, which means the dependency on pycurl needs to be there, 
and you shouldn't bundle common packages under different names like that.

Also, mocking outside of tests is bad practice.  The mocking shouldn't be 
automatic like it is, because that means if pycurl isn't installed, the client 
will think it's working, when it's in fact doing absolutely nothing.

I can work on cleaning this up when I get back to working on Ambari stuff in a 
couple weeks.

> Python client is broken when pycurl isn't installed
> ---------------------------------------------------
>
>                 Key: AMBARI-6294
>                 URL: https://issues.apache.org/jira/browse/AMBARI-6294
>             Project: Ambari
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 1.6.0
>            Reporter: Greg Hill
>            Assignee: subin
>
> If you don't have pycurl installed, trying to use the client causes a lot of 
> problems.  This line in http_client.py is at fault:
> try:
>   import pycurl
> except ImportError:
>   from mock.mock import MagicMock
>   pycurl = MagicMock() 
> There are a few problems here:
> 1. The tests should do the mocking, it shouldn't be done automatically when 
> running outside of tests.
> 2. mock.mock does not appear to be a valid module.  I can't install it via 
> pip.  Did you mean 'from mock import MagicMock'?
> 3. There is no dependency set on either pycurl or mock.mock, so using pip to 
> install ambari-client does not install it in a working state.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to