You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Milindu Sanoj Kumarage <ag...@gmail.com> on 2015/07/09 11:22:24 UTC

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Hi,

I invested last 2 week on some research on Testing frameworks and Security
Certificates. CA Bundles and  Pem files were something I had no experience,
therefor I studied on that. Studied Java security API and Stratos's Java
CLI's Certificate handling codes ( Keystores, etc ).

*Testing frameworks*

1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
GPL-compatible ) ]

Python's unit testing module since 2.7. Very similar to JUnit for
Java. Gives very descriptive outputs when found assertion errors.

2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]

unittest2 is a backport of the new features added to the unittest testing
framework in Python 2.7 and onwards. Supports back to Python 2.4+.

3. PyTest ( pytest.org/ ) [ MIT ]

Very popular unit testing tool which is an alternative to Python’s standard
unittest module. Gives very descriptive outputs when found assertion
errors. Integrates nicely with setup.py. Python 2 and 3 compatible.

4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]

Nose extends unittest to make testing easier. Same as PyTest.
Python 2 and 3 compatible.

5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]

Tox is a generic virtualenv management and test command line tool. We can
setup several Python virtual environments and run our tests on those
environments. This is a very useful tool to ensure the compatibility with
Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
compatible with tox. Able to easily integrate with continuous integration
servers like Jenkins.

6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
GPL-compatible ) ]

 Python module that checks for interactive Python sessions in docstrings,
and then executes those sessions to verify that they work exactly as shown.

7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]

A great tool for command line testing, it issues the commands to the
underlying shell and compares the output with the intended output. Now
discontinued but bug-maintained.

8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]

Successor of Atheist, which provides support to run shell commands on
background, send signal to processes, set assertions on command stdout or
stderr, etc. Very suitable in CLI testing tasks.

9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
license ]

Something like Prego, but seems less features.

10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]

 A BDD framework and a cucumber-clone for Python. Cucumber is a nice way
for feature testing where we define the features in simple English and that
will become the tests.


I definitely will be using Tox because it makes us test the Python CLI on
different Python versions. But Tox alone can not test the CLI. We have to
us some other testing framework on Tox. I'm wondering what to use where. We
can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
But we have to test the CLI functionalities also, using some kind of CLI
testing tool. I think I need some advice here :)

Meanwhile, I continued implementing other "list" CMD actions in Python CLI.
I see some repetition in error code handling stuffs, I'm thinking of a way
to write a general method for error handling and error reporting.

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi Lahiru,

It seems it is the link. Thanks for pointing out :)
Here is the working link.
https://www.youtube.com/watch?v=VjMIk5F9Bas

Thanks


On Wed, Aug 26, 2015 at 10:36 PM, Lahiru Sandaruwan <la...@wso2.com>
wrote:

> Hi Milindu,
>
> Recorded hangout seems not working now. Any clue?
>
> Thanks.
>
> On Mon, Aug 24, 2015 at 7:17 AM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> Here is the recorded Hangout :)
>>
>> https://www.youtube.com/watch?v=VjMIk5F9Ba
>>
>> And here is a small blog post I wrote on how I implemented the Stratos
>> CLI
>>
>> http://agentmilindu.com/python-cli-apache-stratos/
>>
>>
>>
>> On Wed, Aug 19, 2015 at 9:42 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Here is the link to Hangout :)
>>>
>>> https://plus.google.com/hangouts/_/hoaevent/AP36tYff-vrxKu7_Mymm8ZuD0_8hqlP_XRHSADiig8b4mhb7UK1pjA
>>>
>>>
>>> On Wed, Aug 19, 2015 at 9:38 PM, Imesh Gunaratne <im...@apache.org>
>>> wrote:
>>>
>>>> +1 Can you please share the Hangout link?
>>>>
>>>> Thanks
>>>>
>>>> On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
>>>> wrote:
>>>>
>>>>> +1 I can attend.
>>>>>
>>>>> (On a mobile)
>>>>> Regards,
>>>>> Chamila de Alwis
>>>>> Committer and PMC Member - Apache Stratos
>>>>> Software Engineer - WSO2
>>>>> http://code.chamiladealwis.com
>>>>> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on
>>>>>> Air for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time
>>>>>> and date convenient?
>>>>>>
>>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>>
>>>>>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m.
>>>>>>> IST :)
>>>>>>>
>>>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I have finished the  documentation except for some few commands
>>>>>>>> that I still have issues.
>>>>>>>>
>>>>>>>>
>>>>>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>>>>>
>>>>>>>> I did two small demonstration videos on how to use and how to
>>>>>>>> config :)
>>>>>>>>
>>>>>>>>
>>>>>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>>>>>> <https://youtu.be/dzreFlxlKKM>
>>>>>>>>
>>>>>>>> I'm working on testings and those issues I mentioned earlier.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I want to know which commands should output that tree-like view of
>>>>>>>>> JSON data.
>>>>>>>>>
>>>>>>>>> in list-deployment-policies what 'Accessibility' means? How i
>>>>>>>>> should retrieve it from the JSON response?
>>>>>>>>>
>>>>>>>>> +---------------------+---------------+
>>>>>>>>>
>>>>>>>>> |         Id          | Accessibility |
>>>>>>>>>
>>>>>>>>> +=====================+===============+
>>>>>>>>>
>>>>>>>>> | deployment-policy-2 | 1             |
>>>>>>>>>
>>>>>>>>> | deployment-policy-1 | 1             |
>>>>>>>>>
>>>>>>>>> +---------------------+---------------+
>>>>>>>>>
>>>>>>>>> There are couple of commands that gives me errors when I send the
>>>>>>>>> request, I have to check that too.
>>>>>>>>>
>>>>>>>>> I'd do the demo as soon as I finished the document, because I want
>>>>>>>>> to know everything is working as expected :) Few more commands to go.
>>>>>>>>>
>>>>>>>>> Hi Milindu,
>>>>>>>>>
>>>>>>>>> Great work so far! Could you mention what commands and outputs are
>>>>>>>>> less clear?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Chamila de Alwis
>>>>>>>>> Committer and PMC Member - Apache Stratos
>>>>>>>>> Software Engineer | WSO2 | +94772207163
>>>>>>>>> Blog: code.chamiladealwis.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I have finished implementing all the CLI commands, except very
>>>>>>>>>> few which I have some doubts ( like, how the output should be presented ) :)
>>>>>>>>>>
>>>>>>>>>>  I started writing a document explaining each and every command
>>>>>>>>>> with their expected outputs ( when correct params are given, when no params
>>>>>>>>>> are given and when wrong params are given ) I will continue writing the
>>>>>>>>>> test cases based on them.
>>>>>>>>>>
>>>>>>>>>> As discussed on Hangout, I will do a demo,  record it and share
>>>>>>>>>> soon :)
>>>>>>>>>>
>>>>>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I could finish most of the listing command and now working with
>>>>>>>>>>> the create and update commands. I'm running Java CLI to get an idea how the
>>>>>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>>>>>> 2.x ones and 3.z ones.
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I invested last 2 week on some research on Testing frameworks
>>>>>>>>>>>> and Security Certificates. CA Bundles and  Pem files were something I had
>>>>>>>>>>>> no experience, therefor I studied on that. Studied Java security API and
>>>>>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>>>>>
>>>>>>>>>>>> *Testing frameworks*
>>>>>>>>>>>>
>>>>>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>>
>>>>>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit
>>>>>>>>>>>> for Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>>>>>
>>>>>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>>>>>
>>>>>>>>>>>> unittest2 is a backport of the new features added to the
>>>>>>>>>>>> unittest testing framework in Python 2.7 and onwards. Supports back to
>>>>>>>>>>>> Python 2.4+.
>>>>>>>>>>>>
>>>>>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>>>>>
>>>>>>>>>>>> Very popular unit testing tool which is an alternative to
>>>>>>>>>>>> Python’s standard unittest module. Gives very descriptive outputs when
>>>>>>>>>>>> found assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>>>>>> compatible.
>>>>>>>>>>>>
>>>>>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>>>>>
>>>>>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>>>>>
>>>>>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>>>>>
>>>>>>>>>>>> Tox is a generic virtualenv management and test command line
>>>>>>>>>>>> tool. We can setup several Python virtual environments and run our tests on
>>>>>>>>>>>> those environments. This is a very useful tool to ensure the compatibility
>>>>>>>>>>>> with Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>>>>>> servers like Jenkins.
>>>>>>>>>>>>
>>>>>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>>
>>>>>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>>>>>> exactly as shown.
>>>>>>>>>>>>
>>>>>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [
>>>>>>>>>>>> GFDL ]
>>>>>>>>>>>>
>>>>>>>>>>>> A great tool for command line testing, it issues the commands
>>>>>>>>>>>> to the underlying shell and compares the output with the intended output.
>>>>>>>>>>>> Now discontinued but bug-maintained.
>>>>>>>>>>>>
>>>>>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>>>>>
>>>>>>>>>>>> Successor of Atheist, which provides support to run shell
>>>>>>>>>>>> commands on background, send signal to processes, set assertions on command
>>>>>>>>>>>> stdout or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>>>>>
>>>>>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>>>>>> permissive license ]
>>>>>>>>>>>>
>>>>>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>>>>>
>>>>>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>>>>>
>>>>>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>>>>>> and that will become the tests.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I definitely will be using Tox because it makes us test the
>>>>>>>>>>>> Python CLI on different Python versions. But Tox alone can not test the
>>>>>>>>>>>> CLI. We have to us some other testing framework on Tox. I'm wondering what
>>>>>>>>>>>> to use where. We can use PyTest for unit test Stratos.py which calls the
>>>>>>>>>>>> Stratos RESTAPI. But we have to test the CLI functionalities also, using
>>>>>>>>>>>> some kind of CLI testing tool. I think I need some advice here :)
>>>>>>>>>>>>
>>>>>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>>>>>> reporting.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Senior Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>
>
>
> --
> --
> Lahiru Sandaruwan
> Committer and PMC member, Apache Stratos,
> Senior Software Engineer,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> phone: +94773325954
> email: lahirus@wso2.com blog: http://lahiruwrites.blogspot.com/
> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Lahiru Sandaruwan <la...@wso2.com>.
Hi Milindu,

Recorded hangout seems not working now. Any clue?

Thanks.

On Mon, Aug 24, 2015 at 7:17 AM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> Here is the recorded Hangout :)
>
> https://www.youtube.com/watch?v=VjMIk5F9Ba
>
> And here is a small blog post I wrote on how I implemented the Stratos CLI
>
> http://agentmilindu.com/python-cli-apache-stratos/
>
>
>
> On Wed, Aug 19, 2015 at 9:42 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> Here is the link to Hangout :)
>>
>> https://plus.google.com/hangouts/_/hoaevent/AP36tYff-vrxKu7_Mymm8ZuD0_8hqlP_XRHSADiig8b4mhb7UK1pjA
>>
>>
>> On Wed, Aug 19, 2015 at 9:38 PM, Imesh Gunaratne <im...@apache.org>
>> wrote:
>>
>>> +1 Can you please share the Hangout link?
>>>
>>> Thanks
>>>
>>> On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
>>> wrote:
>>>
>>>> +1 I can attend.
>>>>
>>>> (On a mobile)
>>>> Regards,
>>>> Chamila de Alwis
>>>> Committer and PMC Member - Apache Stratos
>>>> Software Engineer - WSO2
>>>> http://code.chamiladealwis.com
>>>> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on
>>>>> Air for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time
>>>>> and date convenient?
>>>>>
>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>
>>>>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST
>>>>>> :)
>>>>>>
>>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I have finished the  documentation except for some few commands that
>>>>>>> I still have issues.
>>>>>>>
>>>>>>>
>>>>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>>>>
>>>>>>> I did two small demonstration videos on how to use and how to config
>>>>>>> :)
>>>>>>>
>>>>>>>
>>>>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>>>>> <https://youtu.be/dzreFlxlKKM>
>>>>>>>
>>>>>>> I'm working on testings and those issues I mentioned earlier.
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I want to know which commands should output that tree-like view of
>>>>>>>> JSON data.
>>>>>>>>
>>>>>>>> in list-deployment-policies what 'Accessibility' means? How i
>>>>>>>> should retrieve it from the JSON response?
>>>>>>>>
>>>>>>>> +---------------------+---------------+
>>>>>>>>
>>>>>>>> |         Id          | Accessibility |
>>>>>>>>
>>>>>>>> +=====================+===============+
>>>>>>>>
>>>>>>>> | deployment-policy-2 | 1             |
>>>>>>>>
>>>>>>>> | deployment-policy-1 | 1             |
>>>>>>>>
>>>>>>>> +---------------------+---------------+
>>>>>>>>
>>>>>>>> There are couple of commands that gives me errors when I send the
>>>>>>>> request, I have to check that too.
>>>>>>>>
>>>>>>>> I'd do the demo as soon as I finished the document, because I want
>>>>>>>> to know everything is working as expected :) Few more commands to go.
>>>>>>>>
>>>>>>>> Hi Milindu,
>>>>>>>>
>>>>>>>> Great work so far! Could you mention what commands and outputs are
>>>>>>>> less clear?
>>>>>>>>
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Chamila de Alwis
>>>>>>>> Committer and PMC Member - Apache Stratos
>>>>>>>> Software Engineer | WSO2 | +94772207163
>>>>>>>> Blog: code.chamiladealwis.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I have finished implementing all the CLI commands, except very few
>>>>>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>>>>>
>>>>>>>>>  I started writing a document explaining each and every command
>>>>>>>>> with their expected outputs ( when correct params are given, when no params
>>>>>>>>> are given and when wrong params are given ) I will continue writing the
>>>>>>>>> test cases based on them.
>>>>>>>>>
>>>>>>>>> As discussed on Hangout, I will do a demo,  record it and share
>>>>>>>>> soon :)
>>>>>>>>>
>>>>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I could finish most of the listing command and now working with
>>>>>>>>>> the create and update commands. I'm running Java CLI to get an idea how the
>>>>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>>>>> 2.x ones and 3.z ones.
>>>>>>>>>>
>>>>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I invested last 2 week on some research on Testing frameworks
>>>>>>>>>>> and Security Certificates. CA Bundles and  Pem files were something I had
>>>>>>>>>>> no experience, therefor I studied on that. Studied Java security API and
>>>>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>>>>
>>>>>>>>>>> *Testing frameworks*
>>>>>>>>>>>
>>>>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>
>>>>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit
>>>>>>>>>>> for Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>>>>
>>>>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>>>>
>>>>>>>>>>> unittest2 is a backport of the new features added to the
>>>>>>>>>>> unittest testing framework in Python 2.7 and onwards. Supports back to
>>>>>>>>>>> Python 2.4+.
>>>>>>>>>>>
>>>>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>>>>
>>>>>>>>>>> Very popular unit testing tool which is an alternative to
>>>>>>>>>>> Python’s standard unittest module. Gives very descriptive outputs when
>>>>>>>>>>> found assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>>>>> compatible.
>>>>>>>>>>>
>>>>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>>>>
>>>>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>>>>
>>>>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>>>>
>>>>>>>>>>> Tox is a generic virtualenv management and test command line
>>>>>>>>>>> tool. We can setup several Python virtual environments and run our tests on
>>>>>>>>>>> those environments. This is a very useful tool to ensure the compatibility
>>>>>>>>>>> with Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>>>>> servers like Jenkins.
>>>>>>>>>>>
>>>>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>
>>>>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>>>>> exactly as shown.
>>>>>>>>>>>
>>>>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [
>>>>>>>>>>> GFDL ]
>>>>>>>>>>>
>>>>>>>>>>> A great tool for command line testing, it issues the commands to
>>>>>>>>>>> the underlying shell and compares the output with the intended output. Now
>>>>>>>>>>> discontinued but bug-maintained.
>>>>>>>>>>>
>>>>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>>>>
>>>>>>>>>>> Successor of Atheist, which provides support to run shell
>>>>>>>>>>> commands on background, send signal to processes, set assertions on command
>>>>>>>>>>> stdout or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>>>>
>>>>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>>>>> permissive license ]
>>>>>>>>>>>
>>>>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>>>>
>>>>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>>>>
>>>>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>>>>> and that will become the tests.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I definitely will be using Tox because it makes us test the
>>>>>>>>>>> Python CLI on different Python versions. But Tox alone can not test the
>>>>>>>>>>> CLI. We have to us some other testing framework on Tox. I'm wondering what
>>>>>>>>>>> to use where. We can use PyTest for unit test Stratos.py which calls the
>>>>>>>>>>> Stratos RESTAPI. But we have to test the CLI functionalities also, using
>>>>>>>>>>> some kind of CLI testing tool. I think I need some advice here :)
>>>>>>>>>>>
>>>>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>>>>> reporting.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Senior Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>
>>
>


-- 
--
Lahiru Sandaruwan
Committer and PMC member, Apache Stratos,
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

phone: +94773325954
email: lahirus@wso2.com blog: http://lahiruwrites.blogspot.com/
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi Imesh,

Thank you for the complement, it means a lot to me :) Here is my pull
request with all the latest changes, including the changes suggested in the
public hangout. https://github.com/apache/stratos/pull/437

Definitely I will be contributing to Stratos project :)  My experience
working with the Stratos community tempts me to keep contributing.  I
really enjoyed GSoC 2015 and I really got much than the stipend.




On Mon, Aug 24, 2015 at 10:14 PM, Imesh Gunaratne <im...@apache.org> wrote:

> Hi Milindu,
>
> Thanks for all the hard work! You have done a great job completing this
> Google Summer of Code project. Please send us a pull request with your
> latest changes.
>
> Please feel free to contribute to Stratos whenever time permits.
>
> Thanks
>
> On Mon, Aug 24, 2015 at 5:47 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> Here is the recorded Hangout :)
>>
>> https://www.youtube.com/watch?v=VjMIk5F9Ba
>>
>> And here is a small blog post I wrote on how I implemented the Stratos
>> CLI
>>
>> http://agentmilindu.com/python-cli-apache-stratos/
>>
>>
>>
>> On Wed, Aug 19, 2015 at 9:42 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Here is the link to Hangout :)
>>>
>>> https://plus.google.com/hangouts/_/hoaevent/AP36tYff-vrxKu7_Mymm8ZuD0_8hqlP_XRHSADiig8b4mhb7UK1pjA
>>>
>>>
>>> On Wed, Aug 19, 2015 at 9:38 PM, Imesh Gunaratne <im...@apache.org>
>>> wrote:
>>>
>>>> +1 Can you please share the Hangout link?
>>>>
>>>> Thanks
>>>>
>>>> On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
>>>> wrote:
>>>>
>>>>> +1 I can attend.
>>>>>
>>>>> (On a mobile)
>>>>> Regards,
>>>>> Chamila de Alwis
>>>>> Committer and PMC Member - Apache Stratos
>>>>> Software Engineer - WSO2
>>>>> http://code.chamiladealwis.com
>>>>> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on
>>>>>> Air for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time
>>>>>> and date convenient?
>>>>>>
>>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>>
>>>>>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m.
>>>>>>> IST :)
>>>>>>>
>>>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I have finished the  documentation except for some few commands
>>>>>>>> that I still have issues.
>>>>>>>>
>>>>>>>>
>>>>>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>>>>>
>>>>>>>> I did two small demonstration videos on how to use and how to
>>>>>>>> config :)
>>>>>>>>
>>>>>>>>
>>>>>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>>>>>> <https://youtu.be/dzreFlxlKKM>
>>>>>>>>
>>>>>>>> I'm working on testings and those issues I mentioned earlier.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I want to know which commands should output that tree-like view of
>>>>>>>>> JSON data.
>>>>>>>>>
>>>>>>>>> in list-deployment-policies what 'Accessibility' means? How i
>>>>>>>>> should retrieve it from the JSON response?
>>>>>>>>>
>>>>>>>>> +---------------------+---------------+
>>>>>>>>>
>>>>>>>>> |         Id          | Accessibility |
>>>>>>>>>
>>>>>>>>> +=====================+===============+
>>>>>>>>>
>>>>>>>>> | deployment-policy-2 | 1             |
>>>>>>>>>
>>>>>>>>> | deployment-policy-1 | 1             |
>>>>>>>>>
>>>>>>>>> +---------------------+---------------+
>>>>>>>>>
>>>>>>>>> There are couple of commands that gives me errors when I send the
>>>>>>>>> request, I have to check that too.
>>>>>>>>>
>>>>>>>>> I'd do the demo as soon as I finished the document, because I want
>>>>>>>>> to know everything is working as expected :) Few more commands to go.
>>>>>>>>>
>>>>>>>>> Hi Milindu,
>>>>>>>>>
>>>>>>>>> Great work so far! Could you mention what commands and outputs are
>>>>>>>>> less clear?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Chamila de Alwis
>>>>>>>>> Committer and PMC Member - Apache Stratos
>>>>>>>>> Software Engineer | WSO2 | +94772207163
>>>>>>>>> Blog: code.chamiladealwis.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I have finished implementing all the CLI commands, except very
>>>>>>>>>> few which I have some doubts ( like, how the output should be presented ) :)
>>>>>>>>>>
>>>>>>>>>>  I started writing a document explaining each and every command
>>>>>>>>>> with their expected outputs ( when correct params are given, when no params
>>>>>>>>>> are given and when wrong params are given ) I will continue writing the
>>>>>>>>>> test cases based on them.
>>>>>>>>>>
>>>>>>>>>> As discussed on Hangout, I will do a demo,  record it and share
>>>>>>>>>> soon :)
>>>>>>>>>>
>>>>>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I could finish most of the listing command and now working with
>>>>>>>>>>> the create and update commands. I'm running Java CLI to get an idea how the
>>>>>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>>>>>> 2.x ones and 3.z ones.
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I invested last 2 week on some research on Testing frameworks
>>>>>>>>>>>> and Security Certificates. CA Bundles and  Pem files were something I had
>>>>>>>>>>>> no experience, therefor I studied on that. Studied Java security API and
>>>>>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>>>>>
>>>>>>>>>>>> *Testing frameworks*
>>>>>>>>>>>>
>>>>>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>>
>>>>>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit
>>>>>>>>>>>> for Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>>>>>
>>>>>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>>>>>
>>>>>>>>>>>> unittest2 is a backport of the new features added to the
>>>>>>>>>>>> unittest testing framework in Python 2.7 and onwards. Supports back to
>>>>>>>>>>>> Python 2.4+.
>>>>>>>>>>>>
>>>>>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>>>>>
>>>>>>>>>>>> Very popular unit testing tool which is an alternative to
>>>>>>>>>>>> Python’s standard unittest module. Gives very descriptive outputs when
>>>>>>>>>>>> found assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>>>>>> compatible.
>>>>>>>>>>>>
>>>>>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>>>>>
>>>>>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>>>>>
>>>>>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>>>>>
>>>>>>>>>>>> Tox is a generic virtualenv management and test command line
>>>>>>>>>>>> tool. We can setup several Python virtual environments and run our tests on
>>>>>>>>>>>> those environments. This is a very useful tool to ensure the compatibility
>>>>>>>>>>>> with Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>>>>>> servers like Jenkins.
>>>>>>>>>>>>
>>>>>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>>
>>>>>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>>>>>> exactly as shown.
>>>>>>>>>>>>
>>>>>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [
>>>>>>>>>>>> GFDL ]
>>>>>>>>>>>>
>>>>>>>>>>>> A great tool for command line testing, it issues the commands
>>>>>>>>>>>> to the underlying shell and compares the output with the intended output.
>>>>>>>>>>>> Now discontinued but bug-maintained.
>>>>>>>>>>>>
>>>>>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>>>>>
>>>>>>>>>>>> Successor of Atheist, which provides support to run shell
>>>>>>>>>>>> commands on background, send signal to processes, set assertions on command
>>>>>>>>>>>> stdout or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>>>>>
>>>>>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>>>>>> permissive license ]
>>>>>>>>>>>>
>>>>>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>>>>>
>>>>>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>>>>>
>>>>>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>>>>>> and that will become the tests.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I definitely will be using Tox because it makes us test the
>>>>>>>>>>>> Python CLI on different Python versions. But Tox alone can not test the
>>>>>>>>>>>> CLI. We have to us some other testing framework on Tox. I'm wondering what
>>>>>>>>>>>> to use where. We can use PyTest for unit test Stratos.py which calls the
>>>>>>>>>>>> Stratos RESTAPI. But we have to test the CLI functionalities also, using
>>>>>>>>>>>> some kind of CLI testing tool. I think I need some advice here :)
>>>>>>>>>>>>
>>>>>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>>>>>> reporting.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Senior Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>
>
>
> --
> Imesh Gunaratne
>
> Senior Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Imesh Gunaratne <im...@apache.org>.
Hi Milindu,

Thanks for all the hard work! You have done a great job completing this
Google Summer of Code project. Please send us a pull request with your
latest changes.

Please feel free to contribute to Stratos whenever time permits.

Thanks

On Mon, Aug 24, 2015 at 5:47 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> Here is the recorded Hangout :)
>
> https://www.youtube.com/watch?v=VjMIk5F9Ba
>
> And here is a small blog post I wrote on how I implemented the Stratos CLI
>
> http://agentmilindu.com/python-cli-apache-stratos/
>
>
>
> On Wed, Aug 19, 2015 at 9:42 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> Here is the link to Hangout :)
>>
>> https://plus.google.com/hangouts/_/hoaevent/AP36tYff-vrxKu7_Mymm8ZuD0_8hqlP_XRHSADiig8b4mhb7UK1pjA
>>
>>
>> On Wed, Aug 19, 2015 at 9:38 PM, Imesh Gunaratne <im...@apache.org>
>> wrote:
>>
>>> +1 Can you please share the Hangout link?
>>>
>>> Thanks
>>>
>>> On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
>>> wrote:
>>>
>>>> +1 I can attend.
>>>>
>>>> (On a mobile)
>>>> Regards,
>>>> Chamila de Alwis
>>>> Committer and PMC Member - Apache Stratos
>>>> Software Engineer - WSO2
>>>> http://code.chamiladealwis.com
>>>> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on
>>>>> Air for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time
>>>>> and date convenient?
>>>>>
>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>
>>>>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST
>>>>>> :)
>>>>>>
>>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I have finished the  documentation except for some few commands that
>>>>>>> I still have issues.
>>>>>>>
>>>>>>>
>>>>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>>>>
>>>>>>> I did two small demonstration videos on how to use and how to config
>>>>>>> :)
>>>>>>>
>>>>>>>
>>>>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>>>>> <https://youtu.be/dzreFlxlKKM>
>>>>>>>
>>>>>>> I'm working on testings and those issues I mentioned earlier.
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I want to know which commands should output that tree-like view of
>>>>>>>> JSON data.
>>>>>>>>
>>>>>>>> in list-deployment-policies what 'Accessibility' means? How i
>>>>>>>> should retrieve it from the JSON response?
>>>>>>>>
>>>>>>>> +---------------------+---------------+
>>>>>>>>
>>>>>>>> |         Id          | Accessibility |
>>>>>>>>
>>>>>>>> +=====================+===============+
>>>>>>>>
>>>>>>>> | deployment-policy-2 | 1             |
>>>>>>>>
>>>>>>>> | deployment-policy-1 | 1             |
>>>>>>>>
>>>>>>>> +---------------------+---------------+
>>>>>>>>
>>>>>>>> There are couple of commands that gives me errors when I send the
>>>>>>>> request, I have to check that too.
>>>>>>>>
>>>>>>>> I'd do the demo as soon as I finished the document, because I want
>>>>>>>> to know everything is working as expected :) Few more commands to go.
>>>>>>>>
>>>>>>>> Hi Milindu,
>>>>>>>>
>>>>>>>> Great work so far! Could you mention what commands and outputs are
>>>>>>>> less clear?
>>>>>>>>
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Chamila de Alwis
>>>>>>>> Committer and PMC Member - Apache Stratos
>>>>>>>> Software Engineer | WSO2 | +94772207163
>>>>>>>> Blog: code.chamiladealwis.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I have finished implementing all the CLI commands, except very few
>>>>>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>>>>>
>>>>>>>>>  I started writing a document explaining each and every command
>>>>>>>>> with their expected outputs ( when correct params are given, when no params
>>>>>>>>> are given and when wrong params are given ) I will continue writing the
>>>>>>>>> test cases based on them.
>>>>>>>>>
>>>>>>>>> As discussed on Hangout, I will do a demo,  record it and share
>>>>>>>>> soon :)
>>>>>>>>>
>>>>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I could finish most of the listing command and now working with
>>>>>>>>>> the create and update commands. I'm running Java CLI to get an idea how the
>>>>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>>>>> 2.x ones and 3.z ones.
>>>>>>>>>>
>>>>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I invested last 2 week on some research on Testing frameworks
>>>>>>>>>>> and Security Certificates. CA Bundles and  Pem files were something I had
>>>>>>>>>>> no experience, therefor I studied on that. Studied Java security API and
>>>>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>>>>
>>>>>>>>>>> *Testing frameworks*
>>>>>>>>>>>
>>>>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>
>>>>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit
>>>>>>>>>>> for Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>>>>
>>>>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>>>>
>>>>>>>>>>> unittest2 is a backport of the new features added to the
>>>>>>>>>>> unittest testing framework in Python 2.7 and onwards. Supports back to
>>>>>>>>>>> Python 2.4+.
>>>>>>>>>>>
>>>>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>>>>
>>>>>>>>>>> Very popular unit testing tool which is an alternative to
>>>>>>>>>>> Python’s standard unittest module. Gives very descriptive outputs when
>>>>>>>>>>> found assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>>>>> compatible.
>>>>>>>>>>>
>>>>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>>>>
>>>>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>>>>
>>>>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>>>>
>>>>>>>>>>> Tox is a generic virtualenv management and test command line
>>>>>>>>>>> tool. We can setup several Python virtual environments and run our tests on
>>>>>>>>>>> those environments. This is a very useful tool to ensure the compatibility
>>>>>>>>>>> with Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>>>>> servers like Jenkins.
>>>>>>>>>>>
>>>>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>>
>>>>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>>>>> exactly as shown.
>>>>>>>>>>>
>>>>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [
>>>>>>>>>>> GFDL ]
>>>>>>>>>>>
>>>>>>>>>>> A great tool for command line testing, it issues the commands to
>>>>>>>>>>> the underlying shell and compares the output with the intended output. Now
>>>>>>>>>>> discontinued but bug-maintained.
>>>>>>>>>>>
>>>>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>>>>
>>>>>>>>>>> Successor of Atheist, which provides support to run shell
>>>>>>>>>>> commands on background, send signal to processes, set assertions on command
>>>>>>>>>>> stdout or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>>>>
>>>>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>>>>> permissive license ]
>>>>>>>>>>>
>>>>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>>>>
>>>>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>>>>
>>>>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>>>>> and that will become the tests.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I definitely will be using Tox because it makes us test the
>>>>>>>>>>> Python CLI on different Python versions. But Tox alone can not test the
>>>>>>>>>>> CLI. We have to us some other testing framework on Tox. I'm wondering what
>>>>>>>>>>> to use where. We can use PyTest for unit test Stratos.py which calls the
>>>>>>>>>>> Stratos RESTAPI. But we have to test the CLI functionalities also, using
>>>>>>>>>>> some kind of CLI testing tool. I think I need some advice here :)
>>>>>>>>>>>
>>>>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>>>>> reporting.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Senior Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>
>>
>


-- 
Imesh Gunaratne

Senior Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

Here is the recorded Hangout :)

https://www.youtube.com/watch?v=VjMIk5F9Ba

And here is a small blog post I wrote on how I implemented the Stratos CLI

http://agentmilindu.com/python-cli-apache-stratos/



On Wed, Aug 19, 2015 at 9:42 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> Here is the link to Hangout :)
>
> https://plus.google.com/hangouts/_/hoaevent/AP36tYff-vrxKu7_Mymm8ZuD0_8hqlP_XRHSADiig8b4mhb7UK1pjA
>
>
> On Wed, Aug 19, 2015 at 9:38 PM, Imesh Gunaratne <im...@apache.org> wrote:
>
>> +1 Can you please share the Hangout link?
>>
>> Thanks
>>
>> On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
>> wrote:
>>
>>> +1 I can attend.
>>>
>>> (On a mobile)
>>> Regards,
>>> Chamila de Alwis
>>> Committer and PMC Member - Apache Stratos
>>> Software Engineer - WSO2
>>> http://code.chamiladealwis.com
>>> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on
>>>> Air for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time
>>>> and date convenient?
>>>>
>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>
>>>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST
>>>>> :)
>>>>>
>>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have finished the  documentation except for some few commands that
>>>>>> I still have issues.
>>>>>>
>>>>>>
>>>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>>>
>>>>>> I did two small demonstration videos on how to use and how to config
>>>>>> :)
>>>>>>
>>>>>>
>>>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>>>> <https://youtu.be/dzreFlxlKKM>
>>>>>>
>>>>>> I'm working on testings and those issues I mentioned earlier.
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I want to know which commands should output that tree-like view of
>>>>>>> JSON data.
>>>>>>>
>>>>>>> in list-deployment-policies what 'Accessibility' means? How i
>>>>>>> should retrieve it from the JSON response?
>>>>>>>
>>>>>>> +---------------------+---------------+
>>>>>>>
>>>>>>> |         Id          | Accessibility |
>>>>>>>
>>>>>>> +=====================+===============+
>>>>>>>
>>>>>>> | deployment-policy-2 | 1             |
>>>>>>>
>>>>>>> | deployment-policy-1 | 1             |
>>>>>>>
>>>>>>> +---------------------+---------------+
>>>>>>>
>>>>>>> There are couple of commands that gives me errors when I send the
>>>>>>> request, I have to check that too.
>>>>>>>
>>>>>>> I'd do the demo as soon as I finished the document, because I want
>>>>>>> to know everything is working as expected :) Few more commands to go.
>>>>>>>
>>>>>>> Hi Milindu,
>>>>>>>
>>>>>>> Great work so far! Could you mention what commands and outputs are
>>>>>>> less clear?
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Chamila de Alwis
>>>>>>> Committer and PMC Member - Apache Stratos
>>>>>>> Software Engineer | WSO2 | +94772207163
>>>>>>> Blog: code.chamiladealwis.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I have finished implementing all the CLI commands, except very few
>>>>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>>>>
>>>>>>>>  I started writing a document explaining each and every command
>>>>>>>> with their expected outputs ( when correct params are given, when no params
>>>>>>>> are given and when wrong params are given ) I will continue writing the
>>>>>>>> test cases based on them.
>>>>>>>>
>>>>>>>> As discussed on Hangout, I will do a demo,  record it and share
>>>>>>>> soon :)
>>>>>>>>
>>>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I could finish most of the listing command and now working with
>>>>>>>>> the create and update commands. I'm running Java CLI to get an idea how the
>>>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>>>> 2.x ones and 3.z ones.
>>>>>>>>>
>>>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>>>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>>>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>>>
>>>>>>>>>> *Testing frameworks*
>>>>>>>>>>
>>>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>
>>>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>>>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>>>
>>>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>>>
>>>>>>>>>> unittest2 is a backport of the new features added to the unittest
>>>>>>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>>>>>>
>>>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>>>
>>>>>>>>>> Very popular unit testing tool which is an alternative to
>>>>>>>>>> Python’s standard unittest module. Gives very descriptive outputs when
>>>>>>>>>> found assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>>>> compatible.
>>>>>>>>>>
>>>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>>>
>>>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>>>
>>>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>>>
>>>>>>>>>> Tox is a generic virtualenv management and test command line
>>>>>>>>>> tool. We can setup several Python virtual environments and run our tests on
>>>>>>>>>> those environments. This is a very useful tool to ensure the compatibility
>>>>>>>>>> with Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>>>> servers like Jenkins.
>>>>>>>>>>
>>>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>>
>>>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>>>> exactly as shown.
>>>>>>>>>>
>>>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [
>>>>>>>>>> GFDL ]
>>>>>>>>>>
>>>>>>>>>> A great tool for command line testing, it issues the commands to
>>>>>>>>>> the underlying shell and compares the output with the intended output. Now
>>>>>>>>>> discontinued but bug-maintained.
>>>>>>>>>>
>>>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>>>
>>>>>>>>>> Successor of Atheist, which provides support to run shell
>>>>>>>>>> commands on background, send signal to processes, set assertions on command
>>>>>>>>>> stdout or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>>>
>>>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>>>> permissive license ]
>>>>>>>>>>
>>>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>>>
>>>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>>>
>>>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>>>> and that will become the tests.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I definitely will be using Tox because it makes us test the
>>>>>>>>>> Python CLI on different Python versions. But Tox alone can not test the
>>>>>>>>>> CLI. We have to us some other testing framework on Tox. I'm wondering what
>>>>>>>>>> to use where. We can use PyTest for unit test Stratos.py which calls the
>>>>>>>>>> Stratos RESTAPI. But we have to test the CLI functionalities also, using
>>>>>>>>>> some kind of CLI testing tool. I think I need some advice here :)
>>>>>>>>>>
>>>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>>>> reporting.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Senior Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

Here is the link to Hangout :)
https://plus.google.com/hangouts/_/hoaevent/AP36tYff-vrxKu7_Mymm8ZuD0_8hqlP_XRHSADiig8b4mhb7UK1pjA


On Wed, Aug 19, 2015 at 9:38 PM, Imesh Gunaratne <im...@apache.org> wrote:

> +1 Can you please share the Hangout link?
>
> Thanks
>
> On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
> wrote:
>
>> +1 I can attend.
>>
>> (On a mobile)
>> Regards,
>> Chamila de Alwis
>> Committer and PMC Member - Apache Stratos
>> Software Engineer - WSO2
>> http://code.chamiladealwis.com
>> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <
>> agentmilindu@gmail.com> wrote:
>>
>>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on
>>> Air for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time
>>> and date convenient?
>>>
>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>
>>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST
>>>> :)
>>>>
>>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have finished the  documentation except for some few commands that I
>>>>> still have issues.
>>>>>
>>>>>
>>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>>
>>>>> I did two small demonstration videos on how to use and how to config :)
>>>>>
>>>>>
>>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>>> <https://youtu.be/dzreFlxlKKM>
>>>>>
>>>>> I'm working on testings and those issues I mentioned earlier.
>>>>>
>>>>>
>>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I want to know which commands should output that tree-like view of
>>>>>> JSON data.
>>>>>>
>>>>>> in list-deployment-policies what 'Accessibility' means? How i should
>>>>>> retrieve it from the JSON response?
>>>>>>
>>>>>> +---------------------+---------------+
>>>>>>
>>>>>> |         Id          | Accessibility |
>>>>>>
>>>>>> +=====================+===============+
>>>>>>
>>>>>> | deployment-policy-2 | 1             |
>>>>>>
>>>>>> | deployment-policy-1 | 1             |
>>>>>>
>>>>>> +---------------------+---------------+
>>>>>>
>>>>>> There are couple of commands that gives me errors when I send the
>>>>>> request, I have to check that too.
>>>>>>
>>>>>> I'd do the demo as soon as I finished the document, because I want to
>>>>>> know everything is working as expected :) Few more commands to go.
>>>>>>
>>>>>> Hi Milindu,
>>>>>>
>>>>>> Great work so far! Could you mention what commands and outputs are
>>>>>> less clear?
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Chamila de Alwis
>>>>>> Committer and PMC Member - Apache Stratos
>>>>>> Software Engineer | WSO2 | +94772207163
>>>>>> Blog: code.chamiladealwis.com
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I have finished implementing all the CLI commands, except very few
>>>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>>>
>>>>>>>  I started writing a document explaining each and every command with
>>>>>>> their expected outputs ( when correct params are given, when no params are
>>>>>>> given and when wrong params are given ) I will continue writing the test
>>>>>>> cases based on them.
>>>>>>>
>>>>>>> As discussed on Hangout, I will do a demo,  record it and share soon
>>>>>>> :)
>>>>>>>
>>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I could finish most of the listing command and now working with the
>>>>>>>> create and update commands. I'm running Java CLI to get an idea how the
>>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>>> 2.x ones and 3.z ones.
>>>>>>>>
>>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>>
>>>>>>>>> *Testing frameworks*
>>>>>>>>>
>>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>
>>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>>
>>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>>
>>>>>>>>> unittest2 is a backport of the new features added to the unittest
>>>>>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>>>>>
>>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>>
>>>>>>>>> Very popular unit testing tool which is an alternative to Python’s
>>>>>>>>> standard unittest module. Gives very descriptive outputs when found
>>>>>>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>>> compatible.
>>>>>>>>>
>>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>>
>>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>>
>>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>>
>>>>>>>>> Tox is a generic virtualenv management and test command line tool.
>>>>>>>>> We can setup several Python virtual environments and run our tests on those
>>>>>>>>> environments. This is a very useful tool to ensure the compatibility with
>>>>>>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>>> servers like Jenkins.
>>>>>>>>>
>>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>>> GPL-compatible ) ]
>>>>>>>>>
>>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>>> exactly as shown.
>>>>>>>>>
>>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [
>>>>>>>>> GFDL ]
>>>>>>>>>
>>>>>>>>> A great tool for command line testing, it issues the commands to
>>>>>>>>> the underlying shell and compares the output with the intended output. Now
>>>>>>>>> discontinued but bug-maintained.
>>>>>>>>>
>>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>>
>>>>>>>>> Successor of Atheist, which provides support to run shell commands
>>>>>>>>> on background, send signal to processes, set assertions on command stdout
>>>>>>>>> or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>>
>>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>>> permissive license ]
>>>>>>>>>
>>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>>
>>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>>
>>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>>> and that will become the tests.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I definitely will be using Tox because it makes us test the Python
>>>>>>>>> CLI on different Python versions. But Tox alone can not test the CLI. We
>>>>>>>>> have to us some other testing framework on Tox. I'm wondering what to use
>>>>>>>>> where. We can use PyTest for unit test Stratos.py which calls the Stratos
>>>>>>>>> RESTAPI. But we have to test the CLI functionalities also, using some kind
>>>>>>>>> of CLI testing tool. I think I need some advice here :)
>>>>>>>>>
>>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>>> reporting.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>
>
> --
> Imesh Gunaratne
>
> Senior Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Imesh Gunaratne <im...@apache.org>.
+1 Can you please share the Hangout link?

Thanks

On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
wrote:

> +1 I can attend.
>
> (On a mobile)
> Regards,
> Chamila de Alwis
> Committer and PMC Member - Apache Stratos
> Software Engineer - WSO2
> http://code.chamiladealwis.com
> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <ag...@gmail.com>
> wrote:
>
>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on Air
>> for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time and
>> date convenient?
>>
>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>
>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST :)
>>>
>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>
>>>
>>>
>>>
>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I have finished the  documentation except for some few commands that I
>>>> still have issues.
>>>>
>>>>
>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>
>>>> I did two small demonstration videos on how to use and how to config :)
>>>>
>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>> <https://youtu.be/dzreFlxlKKM>
>>>>
>>>> I'm working on testings and those issues I mentioned earlier.
>>>>
>>>>
>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I want to know which commands should output that tree-like view of
>>>>> JSON data.
>>>>>
>>>>> in list-deployment-policies what 'Accessibility' means? How i should
>>>>> retrieve it from the JSON response?
>>>>>
>>>>> +---------------------+---------------+
>>>>>
>>>>> |         Id          | Accessibility |
>>>>>
>>>>> +=====================+===============+
>>>>>
>>>>> | deployment-policy-2 | 1             |
>>>>>
>>>>> | deployment-policy-1 | 1             |
>>>>>
>>>>> +---------------------+---------------+
>>>>>
>>>>> There are couple of commands that gives me errors when I send the
>>>>> request, I have to check that too.
>>>>>
>>>>> I'd do the demo as soon as I finished the document, because I want to
>>>>> know everything is working as expected :) Few more commands to go.
>>>>>
>>>>> Hi Milindu,
>>>>>
>>>>> Great work so far! Could you mention what commands and outputs are
>>>>> less clear?
>>>>>
>>>>>
>>>>> Regards,
>>>>> Chamila de Alwis
>>>>> Committer and PMC Member - Apache Stratos
>>>>> Software Engineer | WSO2 | +94772207163
>>>>> Blog: code.chamiladealwis.com
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have finished implementing all the CLI commands, except very few
>>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>>
>>>>>>  I started writing a document explaining each and every command with
>>>>>> their expected outputs ( when correct params are given, when no params are
>>>>>> given and when wrong params are given ) I will continue writing the test
>>>>>> cases based on them.
>>>>>>
>>>>>> As discussed on Hangout, I will do a demo,  record it and share soon
>>>>>> :)
>>>>>>
>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I could finish most of the listing command and now working with the
>>>>>>> create and update commands. I'm running Java CLI to get an idea how the
>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>> 2.x ones and 3.z ones.
>>>>>>>
>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>
>>>>>>>> *Testing frameworks*
>>>>>>>>
>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>> GPL-compatible ) ]
>>>>>>>>
>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>
>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>
>>>>>>>> unittest2 is a backport of the new features added to the unittest
>>>>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>>>>
>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>
>>>>>>>> Very popular unit testing tool which is an alternative to Python’s
>>>>>>>> standard unittest module. Gives very descriptive outputs when found
>>>>>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>> compatible.
>>>>>>>>
>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>
>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>
>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>
>>>>>>>> Tox is a generic virtualenv management and test command line tool.
>>>>>>>> We can setup several Python virtual environments and run our tests on those
>>>>>>>> environments. This is a very useful tool to ensure the compatibility with
>>>>>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>> servers like Jenkins.
>>>>>>>>
>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>> GPL-compatible ) ]
>>>>>>>>
>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>> exactly as shown.
>>>>>>>>
>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL
>>>>>>>> ]
>>>>>>>>
>>>>>>>> A great tool for command line testing, it issues the commands to
>>>>>>>> the underlying shell and compares the output with the intended output. Now
>>>>>>>> discontinued but bug-maintained.
>>>>>>>>
>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>
>>>>>>>> Successor of Atheist, which provides support to run shell commands
>>>>>>>> on background, send signal to processes, set assertions on command stdout
>>>>>>>> or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>
>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>> permissive license ]
>>>>>>>>
>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>
>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>
>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>> and that will become the tests.
>>>>>>>>
>>>>>>>>
>>>>>>>> I definitely will be using Tox because it makes us test the Python
>>>>>>>> CLI on different Python versions. But Tox alone can not test the CLI. We
>>>>>>>> have to us some other testing framework on Tox. I'm wondering what to use
>>>>>>>> where. We can use PyTest for unit test Stratos.py which calls the Stratos
>>>>>>>> RESTAPI. But we have to test the CLI functionalities also, using some kind
>>>>>>>> of CLI testing tool. I think I need some advice here :)
>>>>>>>>
>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>> reporting.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>


-- 
Imesh Gunaratne

Senior Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

the Hangout for Stratos Python CLI begins on 9:30 pm IST :)



On Tue, Aug 18, 2015 at 10:54 PM, Chamila De Alwis <ch...@wso2.com>
wrote:

> +1 I can attend.
>
> (On a mobile)
> Regards,
> Chamila de Alwis
> Committer and PMC Member - Apache Stratos
> Software Engineer - WSO2
> http://code.chamiladealwis.com
> On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <ag...@gmail.com>
> wrote:
>
>>  Hi, extremely sorry, the date is 19th, we are having the Hangout on Air
>> for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time and
>> date convenient?
>>
>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>
>> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST :)
>>>
>>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>>
>>>
>>>
>>>
>>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I have finished the  documentation except for some few commands that I
>>>> still have issues.
>>>>
>>>>
>>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>>
>>>> I did two small demonstration videos on how to use and how to config :)
>>>>
>>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>>> <https://youtu.be/dzreFlxlKKM>
>>>>
>>>> I'm working on testings and those issues I mentioned earlier.
>>>>
>>>>
>>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I want to know which commands should output that tree-like view of
>>>>> JSON data.
>>>>>
>>>>> in list-deployment-policies what 'Accessibility' means? How i should
>>>>> retrieve it from the JSON response?
>>>>>
>>>>> +---------------------+---------------+
>>>>>
>>>>> |         Id          | Accessibility |
>>>>>
>>>>> +=====================+===============+
>>>>>
>>>>> | deployment-policy-2 | 1             |
>>>>>
>>>>> | deployment-policy-1 | 1             |
>>>>>
>>>>> +---------------------+---------------+
>>>>>
>>>>> There are couple of commands that gives me errors when I send the
>>>>> request, I have to check that too.
>>>>>
>>>>> I'd do the demo as soon as I finished the document, because I want to
>>>>> know everything is working as expected :) Few more commands to go.
>>>>>
>>>>> Hi Milindu,
>>>>>
>>>>> Great work so far! Could you mention what commands and outputs are
>>>>> less clear?
>>>>>
>>>>>
>>>>> Regards,
>>>>> Chamila de Alwis
>>>>> Committer and PMC Member - Apache Stratos
>>>>> Software Engineer | WSO2 | +94772207163
>>>>> Blog: code.chamiladealwis.com
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have finished implementing all the CLI commands, except very few
>>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>>
>>>>>>  I started writing a document explaining each and every command with
>>>>>> their expected outputs ( when correct params are given, when no params are
>>>>>> given and when wrong params are given ) I will continue writing the test
>>>>>> cases based on them.
>>>>>>
>>>>>> As discussed on Hangout, I will do a demo,  record it and share soon
>>>>>> :)
>>>>>>
>>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I could finish most of the listing command and now working with the
>>>>>>> create and update commands. I'm running Java CLI to get an idea how the
>>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>>> 2.x ones and 3.z ones.
>>>>>>>
>>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>>
>>>>>>>> *Testing frameworks*
>>>>>>>>
>>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>>> GPL-compatible ) ]
>>>>>>>>
>>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>>
>>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>>
>>>>>>>> unittest2 is a backport of the new features added to the unittest
>>>>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>>>>
>>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>>
>>>>>>>> Very popular unit testing tool which is an alternative to Python’s
>>>>>>>> standard unittest module. Gives very descriptive outputs when found
>>>>>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>>> compatible.
>>>>>>>>
>>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>>
>>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>>> Python 2 and 3 compatible.
>>>>>>>>
>>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>>
>>>>>>>> Tox is a generic virtualenv management and test command line tool.
>>>>>>>> We can setup several Python virtual environments and run our tests on those
>>>>>>>> environments. This is a very useful tool to ensure the compatibility with
>>>>>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>>> servers like Jenkins.
>>>>>>>>
>>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>>> GPL-compatible ) ]
>>>>>>>>
>>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>>> exactly as shown.
>>>>>>>>
>>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL
>>>>>>>> ]
>>>>>>>>
>>>>>>>> A great tool for command line testing, it issues the commands to
>>>>>>>> the underlying shell and compares the output with the intended output. Now
>>>>>>>> discontinued but bug-maintained.
>>>>>>>>
>>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>>
>>>>>>>> Successor of Atheist, which provides support to run shell commands
>>>>>>>> on background, send signal to processes, set assertions on command stdout
>>>>>>>> or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>>
>>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>>> permissive license ]
>>>>>>>>
>>>>>>>> Something like Prego, but seems less features.
>>>>>>>>
>>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>>
>>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a
>>>>>>>> nice way for feature testing where we define the features in simple English
>>>>>>>> and that will become the tests.
>>>>>>>>
>>>>>>>>
>>>>>>>> I definitely will be using Tox because it makes us test the Python
>>>>>>>> CLI on different Python versions. But Tox alone can not test the CLI. We
>>>>>>>> have to us some other testing framework on Tox. I'm wondering what to use
>>>>>>>> where. We can use PyTest for unit test Stratos.py which calls the Stratos
>>>>>>>> RESTAPI. But we have to test the CLI functionalities also, using some kind
>>>>>>>> of CLI testing tool. I think I need some advice here :)
>>>>>>>>
>>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>>> reporting.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Chamila De Alwis <ch...@wso2.com>.
+1 I can attend.

(On a mobile)
Regards,
Chamila de Alwis
Committer and PMC Member - Apache Stratos
Software Engineer - WSO2
http://code.chamiladealwis.com
On Aug 18, 2015 12:04 PM, "Milindu Sanoj Kumarage" <ag...@gmail.com>
wrote:

>  Hi, extremely sorry, the date is 19th, we are having the Hangout on Air
> for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time and
> date convenient?
>
> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>
> On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST :)
>>
>> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>>
>>
>>
>>
>> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I have finished the  documentation except for some few commands that I
>>> still have issues.
>>>
>>>
>>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>>
>>> I did two small demonstration videos on how to use and how to config :)
>>>
>>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>>> <https://youtu.be/dzreFlxlKKM>
>>>
>>> I'm working on testings and those issues I mentioned earlier.
>>>
>>>
>>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I want to know which commands should output that tree-like view of JSON
>>>> data.
>>>>
>>>> in list-deployment-policies what 'Accessibility' means? How i should
>>>> retrieve it from the JSON response?
>>>>
>>>> +---------------------+---------------+
>>>>
>>>> |         Id          | Accessibility |
>>>>
>>>> +=====================+===============+
>>>>
>>>> | deployment-policy-2 | 1             |
>>>>
>>>> | deployment-policy-1 | 1             |
>>>>
>>>> +---------------------+---------------+
>>>>
>>>> There are couple of commands that gives me errors when I send the
>>>> request, I have to check that too.
>>>>
>>>> I'd do the demo as soon as I finished the document, because I want to
>>>> know everything is working as expected :) Few more commands to go.
>>>>
>>>> Hi Milindu,
>>>>
>>>> Great work so far! Could you mention what commands and outputs are less
>>>> clear?
>>>>
>>>>
>>>> Regards,
>>>> Chamila de Alwis
>>>> Committer and PMC Member - Apache Stratos
>>>> Software Engineer | WSO2 | +94772207163
>>>> Blog: code.chamiladealwis.com
>>>>
>>>>
>>>>
>>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have finished implementing all the CLI commands, except very few
>>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>>
>>>>>  I started writing a document explaining each and every command with
>>>>> their expected outputs ( when correct params are given, when no params are
>>>>> given and when wrong params are given ) I will continue writing the test
>>>>> cases based on them.
>>>>>
>>>>> As discussed on Hangout, I will do a demo,  record it and share soon
>>>>> :)
>>>>>
>>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I could finish most of the listing command and now working with the
>>>>>> create and update commands. I'm running Java CLI to get an idea how the
>>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>>> 2.x ones and 3.z ones.
>>>>>>
>>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>>> agentmilindu@gmail.com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>>
>>>>>>> *Testing frameworks*
>>>>>>>
>>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>>> GPL-compatible ) ]
>>>>>>>
>>>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>>>
>>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>>
>>>>>>> unittest2 is a backport of the new features added to the unittest
>>>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>>>
>>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>>
>>>>>>> Very popular unit testing tool which is an alternative to Python’s
>>>>>>> standard unittest module. Gives very descriptive outputs when found
>>>>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>>> compatible.
>>>>>>>
>>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>>
>>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>>> Python 2 and 3 compatible.
>>>>>>>
>>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>>
>>>>>>> Tox is a generic virtualenv management and test command line tool.
>>>>>>> We can setup several Python virtual environments and run our tests on those
>>>>>>> environments. This is a very useful tool to ensure the compatibility with
>>>>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>>> servers like Jenkins.
>>>>>>>
>>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>>> GPL-compatible ) ]
>>>>>>>
>>>>>>>  Python module that checks for interactive Python sessions in
>>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>>> exactly as shown.
>>>>>>>
>>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>>>>>
>>>>>>> A great tool for command line testing, it issues the commands to the
>>>>>>> underlying shell and compares the output with the intended output. Now
>>>>>>> discontinued but bug-maintained.
>>>>>>>
>>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>>
>>>>>>> Successor of Atheist, which provides support to run shell commands
>>>>>>> on background, send signal to processes, set assertions on command stdout
>>>>>>> or stderr, etc. Very suitable in CLI testing tasks.
>>>>>>>
>>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>>> permissive license ]
>>>>>>>
>>>>>>> Something like Prego, but seems less features.
>>>>>>>
>>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>>
>>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice
>>>>>>> way for feature testing where we define the features in simple English and
>>>>>>> that will become the tests.
>>>>>>>
>>>>>>>
>>>>>>> I definitely will be using Tox because it makes us test the Python
>>>>>>> CLI on different Python versions. But Tox alone can not test the CLI. We
>>>>>>> have to us some other testing framework on Tox. I'm wondering what to use
>>>>>>> where. We can use PyTest for unit test Stratos.py which calls the Stratos
>>>>>>> RESTAPI. But we have to test the CLI functionalities also, using some kind
>>>>>>> of CLI testing tool. I think I need some advice here :)
>>>>>>>
>>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>>> thinking of a way to write a general method for error handling and error
>>>>>>> reporting.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
 Hi, extremely sorry, the date is 19th, we are having the Hangout on Air
for Stratos Python CLI on 19th Au from 9:30p.m IST onward. Is this time and
date convenient?

https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo

On Tue, Aug 18, 2015 at 9:02 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST :)
>
> https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo
>
>
>
>
> On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I have finished the  documentation except for some few commands that I
>> still have issues.
>>
>>
>> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>>
>> I did two small demonstration videos on how to use and how to config :)
>>
>> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
>> <https://youtu.be/dzreFlxlKKM>
>>
>> I'm working on testings and those issues I mentioned earlier.
>>
>>
>> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I want to know which commands should output that tree-like view of JSON
>>> data.
>>>
>>> in list-deployment-policies what 'Accessibility' means? How i should
>>> retrieve it from the JSON response?
>>>
>>> +---------------------+---------------+
>>>
>>> |         Id          | Accessibility |
>>>
>>> +=====================+===============+
>>>
>>> | deployment-policy-2 | 1             |
>>>
>>> | deployment-policy-1 | 1             |
>>>
>>> +---------------------+---------------+
>>>
>>> There are couple of commands that gives me errors when I send the
>>> request, I have to check that too.
>>>
>>> I'd do the demo as soon as I finished the document, because I want to
>>> know everything is working as expected :) Few more commands to go.
>>>
>>> Hi Milindu,
>>>
>>> Great work so far! Could you mention what commands and outputs are less
>>> clear?
>>>
>>>
>>> Regards,
>>> Chamila de Alwis
>>> Committer and PMC Member - Apache Stratos
>>> Software Engineer | WSO2 | +94772207163
>>> Blog: code.chamiladealwis.com
>>>
>>>
>>>
>>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I have finished implementing all the CLI commands, except very few
>>>> which I have some doubts ( like, how the output should be presented ) :)
>>>>
>>>>  I started writing a document explaining each and every command with
>>>> their expected outputs ( when correct params are given, when no params are
>>>> given and when wrong params are given ) I will continue writing the test
>>>> cases based on them.
>>>>
>>>> As discussed on Hangout, I will do a demo,  record it and share soon :)
>>>>
>>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I could finish most of the listing command and now working with the
>>>>> create and update commands. I'm running Java CLI to get an idea how the
>>>>> output should be presented. Had to fix some issues related to that "-"
>>>>> issue also, regarding auto-completion. I started writing test cases for
>>>>> utility methods, and will start writing test cases for Stratos specific
>>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>>> 2.x ones and 3.z ones.
>>>>>
>>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>>> agentmilindu@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>>
>>>>>> *Testing frameworks*
>>>>>>
>>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>>> GPL-compatible ) ]
>>>>>>
>>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>>
>>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>>
>>>>>> unittest2 is a backport of the new features added to the unittest
>>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>>
>>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>>
>>>>>> Very popular unit testing tool which is an alternative to Python’s
>>>>>> standard unittest module. Gives very descriptive outputs when found
>>>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>>> compatible.
>>>>>>
>>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>>
>>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>>> Python 2 and 3 compatible.
>>>>>>
>>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>>
>>>>>> Tox is a generic virtualenv management and test command line tool. We
>>>>>> can setup several Python virtual environments and run our tests on those
>>>>>> environments. This is a very useful tool to ensure the compatibility with
>>>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>>> servers like Jenkins.
>>>>>>
>>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>>> GPL-compatible ) ]
>>>>>>
>>>>>>  Python module that checks for interactive Python sessions in
>>>>>> docstrings, and then executes those sessions to verify that they work
>>>>>> exactly as shown.
>>>>>>
>>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>>>>
>>>>>> A great tool for command line testing, it issues the commands to the
>>>>>> underlying shell and compares the output with the intended output. Now
>>>>>> discontinued but bug-maintained.
>>>>>>
>>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>>
>>>>>> Successor of Atheist, which provides support to run shell commands on
>>>>>> background, send signal to processes, set assertions on command stdout or
>>>>>> stderr, etc. Very suitable in CLI testing tasks.
>>>>>>
>>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style
>>>>>> permissive license ]
>>>>>>
>>>>>> Something like Prego, but seems less features.
>>>>>>
>>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>>
>>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice
>>>>>> way for feature testing where we define the features in simple English and
>>>>>> that will become the tests.
>>>>>>
>>>>>>
>>>>>> I definitely will be using Tox because it makes us test the Python
>>>>>> CLI on different Python versions. But Tox alone can not test the CLI. We
>>>>>> have to us some other testing framework on Tox. I'm wondering what to use
>>>>>> where. We can use PyTest for unit test Stratos.py which calls the Stratos
>>>>>> RESTAPI. But we have to test the CLI functionalities also, using some kind
>>>>>> of CLI testing tool. I think I need some advice here :)
>>>>>>
>>>>>> Meanwhile, I continued implementing other "list" CMD actions in
>>>>>> Python CLI. I see some repetition in error code handling stuffs, I'm
>>>>>> thinking of a way to write a general method for error handling and error
>>>>>> reporting.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

We are having a Hangout on Air for Stratos Python CLI on 9:30p.m. IST :)

https://plus.google.com/u/0/events/c8d9682n9bris9at4ucppot9jbo




On Sun, Aug 16, 2015 at 4:14 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> I have finished the  documentation except for some few commands that I
> still have issues.
>
>
> https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing
>
> I did two small demonstration videos on how to use and how to config :)
>
> https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
> <https://youtu.be/dzreFlxlKKM>
>
> I'm working on testings and those issues I mentioned earlier.
>
>
> On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I want to know which commands should output that tree-like view of JSON
>> data.
>>
>> in list-deployment-policies what 'Accessibility' means? How i should
>> retrieve it from the JSON response?
>>
>> +---------------------+---------------+
>>
>> |         Id          | Accessibility |
>>
>> +=====================+===============+
>>
>> | deployment-policy-2 | 1             |
>>
>> | deployment-policy-1 | 1             |
>>
>> +---------------------+---------------+
>>
>> There are couple of commands that gives me errors when I send the
>> request, I have to check that too.
>>
>> I'd do the demo as soon as I finished the document, because I want to
>> know everything is working as expected :) Few more commands to go.
>>
>> Hi Milindu,
>>
>> Great work so far! Could you mention what commands and outputs are less
>> clear?
>>
>>
>> Regards,
>> Chamila de Alwis
>> Committer and PMC Member - Apache Stratos
>> Software Engineer | WSO2 | +94772207163
>> Blog: code.chamiladealwis.com
>>
>>
>>
>> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I have finished implementing all the CLI commands, except very few which
>>> I have some doubts ( like, how the output should be presented ) :)
>>>
>>>  I started writing a document explaining each and every command with
>>> their expected outputs ( when correct params are given, when no params are
>>> given and when wrong params are given ) I will continue writing the test
>>> cases based on them.
>>>
>>> As discussed on Hangout, I will do a demo,  record it and share soon :)
>>>
>>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I could finish most of the listing command and now working with the
>>>> create and update commands. I'm running Java CLI to get an idea how the
>>>> output should be presented. Had to fix some issues related to that "-"
>>>> issue also, regarding auto-completion. I started writing test cases for
>>>> utility methods, and will start writing test cases for Stratos specific
>>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>>> 2.x ones and 3.z ones.
>>>>
>>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>>> agentmilindu@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I invested last 2 week on some research on Testing frameworks and
>>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>>> experience, therefor I studied on that. Studied Java security API and
>>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>>
>>>>> *Testing frameworks*
>>>>>
>>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>>> GPL-compatible ) ]
>>>>>
>>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>>
>>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>>
>>>>> unittest2 is a backport of the new features added to the unittest
>>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>>
>>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>>
>>>>> Very popular unit testing tool which is an alternative to Python’s
>>>>> standard unittest module. Gives very descriptive outputs when found
>>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>>> compatible.
>>>>>
>>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>>
>>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>>> Python 2 and 3 compatible.
>>>>>
>>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>>
>>>>> Tox is a generic virtualenv management and test command line tool. We
>>>>> can setup several Python virtual environments and run our tests on those
>>>>> environments. This is a very useful tool to ensure the compatibility with
>>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>>> compatible with tox. Able to easily integrate with continuous integration
>>>>> servers like Jenkins.
>>>>>
>>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>>> GPL-compatible ) ]
>>>>>
>>>>>  Python module that checks for interactive Python sessions in
>>>>> docstrings, and then executes those sessions to verify that they work
>>>>> exactly as shown.
>>>>>
>>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>>>
>>>>> A great tool for command line testing, it issues the commands to the
>>>>> underlying shell and compares the output with the intended output. Now
>>>>> discontinued but bug-maintained.
>>>>>
>>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>>
>>>>> Successor of Atheist, which provides support to run shell commands on
>>>>> background, send signal to processes, set assertions on command stdout or
>>>>> stderr, etc. Very suitable in CLI testing tasks.
>>>>>
>>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
>>>>> license ]
>>>>>
>>>>> Something like Prego, but seems less features.
>>>>>
>>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>>
>>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice
>>>>> way for feature testing where we define the features in simple English and
>>>>> that will become the tests.
>>>>>
>>>>>
>>>>> I definitely will be using Tox because it makes us test the Python CLI
>>>>> on different Python versions. But Tox alone can not test the CLI. We have
>>>>> to us some other testing framework on Tox. I'm wondering what to use where.
>>>>> We can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
>>>>> But we have to test the CLI functionalities also, using some kind of CLI
>>>>> testing tool. I think I need some advice here :)
>>>>>
>>>>> Meanwhile, I continued implementing other "list" CMD actions in Python
>>>>> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
>>>>> way to write a general method for error handling and error reporting.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

I have finished the  documentation except for some few commands that I
still have issues.

https://docs.google.com/document/d/1GEdrOyIGF-zdwVry7t6-WYFMeEC0Y_Ki3ExyZFYCXdw/edit?usp=sharing

I did two small demonstration videos on how to use and how to config :)

https://www.youtube.com/playlist?list=PL2zdjxqMDj71dlnYitq59PzEoOAG21Uhq
<https://youtu.be/dzreFlxlKKM>

I'm working on testings and those issues I mentioned earlier.


On Wed, Aug 12, 2015 at 12:37 AM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> I want to know which commands should output that tree-like view of JSON
> data.
>
> in list-deployment-policies what 'Accessibility' means? How i should
> retrieve it from the JSON response?
>
> +---------------------+---------------+
>
> |         Id          | Accessibility |
>
> +=====================+===============+
>
> | deployment-policy-2 | 1             |
>
> | deployment-policy-1 | 1             |
>
> +---------------------+---------------+
>
> There are couple of commands that gives me errors when I send the request,
> I have to check that too.
>
> I'd do the demo as soon as I finished the document, because I want to know
> everything is working as expected :) Few more commands to go.
>
> Hi Milindu,
>
> Great work so far! Could you mention what commands and outputs are less
> clear?
>
>
> Regards,
> Chamila de Alwis
> Committer and PMC Member - Apache Stratos
> Software Engineer | WSO2 | +94772207163
> Blog: code.chamiladealwis.com
>
>
>
> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I have finished implementing all the CLI commands, except very few which
>> I have some doubts ( like, how the output should be presented ) :)
>>
>>  I started writing a document explaining each and every command with
>> their expected outputs ( when correct params are given, when no params are
>> given and when wrong params are given ) I will continue writing the test
>> cases based on them.
>>
>> As discussed on Hangout, I will do a demo,  record it and share soon :)
>>
>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I could finish most of the listing command and now working with the
>>> create and update commands. I'm running Java CLI to get an idea how the
>>> output should be presented. Had to fix some issues related to that "-"
>>> issue also, regarding auto-completion. I started writing test cases for
>>> utility methods, and will start writing test cases for Stratos specific
>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>> 2.x ones and 3.z ones.
>>>
>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I invested last 2 week on some research on Testing frameworks and
>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>> experience, therefor I studied on that. Studied Java security API and
>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>
>>>> *Testing frameworks*
>>>>
>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>> GPL-compatible ) ]
>>>>
>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>
>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>
>>>> unittest2 is a backport of the new features added to the unittest
>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>
>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>
>>>> Very popular unit testing tool which is an alternative to Python’s
>>>> standard unittest module. Gives very descriptive outputs when found
>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>> compatible.
>>>>
>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>
>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>> Python 2 and 3 compatible.
>>>>
>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>
>>>> Tox is a generic virtualenv management and test command line tool. We
>>>> can setup several Python virtual environments and run our tests on those
>>>> environments. This is a very useful tool to ensure the compatibility with
>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>> compatible with tox. Able to easily integrate with continuous integration
>>>> servers like Jenkins.
>>>>
>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>> GPL-compatible ) ]
>>>>
>>>>  Python module that checks for interactive Python sessions in
>>>> docstrings, and then executes those sessions to verify that they work
>>>> exactly as shown.
>>>>
>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>>
>>>> A great tool for command line testing, it issues the commands to the
>>>> underlying shell and compares the output with the intended output. Now
>>>> discontinued but bug-maintained.
>>>>
>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>
>>>> Successor of Atheist, which provides support to run shell commands on
>>>> background, send signal to processes, set assertions on command stdout or
>>>> stderr, etc. Very suitable in CLI testing tasks.
>>>>
>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
>>>> license ]
>>>>
>>>> Something like Prego, but seems less features.
>>>>
>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>
>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice
>>>> way for feature testing where we define the features in simple English and
>>>> that will become the tests.
>>>>
>>>>
>>>> I definitely will be using Tox because it makes us test the Python CLI
>>>> on different Python versions. But Tox alone can not test the CLI. We have
>>>> to us some other testing framework on Tox. I'm wondering what to use where.
>>>> We can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
>>>> But we have to test the CLI functionalities also, using some kind of CLI
>>>> testing tool. I think I need some advice here :)
>>>>
>>>> Meanwhile, I continued implementing other "list" CMD actions in Python
>>>> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
>>>> way to write a general method for error handling and error reporting.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

I want to know which commands should output that tree-like view of JSON
data.

in list-deployment-policies what 'Accessibility' means? How i should
retrieve it from the JSON response?

+---------------------+---------------+

|         Id          | Accessibility |

+=====================+===============+

| deployment-policy-2 | 1             |

| deployment-policy-1 | 1             |

+---------------------+---------------+

There are couple of commands that gives me errors when I send the request,
I have to check that too.

I'd do the demo as soon as I finished the document, because I want to know
everything is working as expected :) Few more commands to go.

Hi Milindu,

Great work so far! Could you mention what commands and outputs are less
clear?


Regards,
Chamila de Alwis
Committer and PMC Member - Apache Stratos
Software Engineer | WSO2 | +94772207163
Blog: code.chamiladealwis.com



On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> I have finished implementing all the CLI commands, except very few which I
> have some doubts ( like, how the output should be presented ) :)
>
>  I started writing a document explaining each and every command with their
> expected outputs ( when correct params are given, when no params are given
> and when wrong params are given ) I will continue writing the test cases
> based on them.
>
> As discussed on Hangout, I will do a demo,  record it and share soon :)
>
> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I could finish most of the listing command and now working with the
>> create and update commands. I'm running Java CLI to get an idea how the
>> output should be presented. Had to fix some issues related to that "-"
>> issue also, regarding auto-completion. I started writing test cases for
>> utility methods, and will start writing test cases for Stratos specific
>> ones this week. I'm using Tox to run my tests on different Python versions,
>> 2.x ones and 3.z ones.
>>
>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I invested last 2 week on some research on Testing frameworks and
>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>> experience, therefor I studied on that. Studied Java security API and
>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>
>>> *Testing frameworks*
>>>
>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>> GPL-compatible ) ]
>>>
>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>> Java. Gives very descriptive outputs when found assertion errors.
>>>
>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>
>>> unittest2 is a backport of the new features added to the unittest
>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>
>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>
>>> Very popular unit testing tool which is an alternative to Python’s
>>> standard unittest module. Gives very descriptive outputs when found
>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>> compatible.
>>>
>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>
>>> Nose extends unittest to make testing easier. Same as PyTest.
>>> Python 2 and 3 compatible.
>>>
>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>
>>> Tox is a generic virtualenv management and test command line tool. We
>>> can setup several Python virtual environments and run our tests on those
>>> environments. This is a very useful tool to ensure the compatibility with
>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>> compatible with tox. Able to easily integrate with continuous integration
>>> servers like Jenkins.
>>>
>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>> GPL-compatible ) ]
>>>
>>>  Python module that checks for interactive Python sessions in
>>> docstrings, and then executes those sessions to verify that they work
>>> exactly as shown.
>>>
>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>
>>> A great tool for command line testing, it issues the commands to the
>>> underlying shell and compares the output with the intended output. Now
>>> discontinued but bug-maintained.
>>>
>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>
>>> Successor of Atheist, which provides support to run shell commands on
>>> background, send signal to processes, set assertions on command stdout or
>>> stderr, etc. Very suitable in CLI testing tasks.
>>>
>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
>>> license ]
>>>
>>> Something like Prego, but seems less features.
>>>
>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>
>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice way
>>> for feature testing where we define the features in simple English and that
>>> will become the tests.
>>>
>>>
>>> I definitely will be using Tox because it makes us test the Python CLI
>>> on different Python versions. But Tox alone can not test the CLI. We have
>>> to us some other testing framework on Tox. I'm wondering what to use where.
>>> We can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
>>> But we have to test the CLI functionalities also, using some kind of CLI
>>> testing tool. I think I need some advice here :)
>>>
>>> Meanwhile, I continued implementing other "list" CMD actions in Python
>>> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
>>> way to write a general method for error handling and error reporting.
>>>
>>>
>>>
>>>
>>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Imesh Gunaratne <im...@apache.org>.
Hi Milindu,

Great! Please arrange a public Google Hangout and do a demo. We will also
need to do a code review.

Thanks

On Mon, Aug 10, 2015 at 12:14 AM, Chamila De Alwis <ch...@wso2.com>
wrote:

> Hi Milindu,
>
> Great work so far! Could you mention what commands and outputs are less
> clear?
>
>
> Regards,
> Chamila de Alwis
> Committer and PMC Member - Apache Stratos
> Software Engineer | WSO2 | +94772207163
> Blog: code.chamiladealwis.com
>
>
>
> On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I have finished implementing all the CLI commands, except very few which
>> I have some doubts ( like, how the output should be presented ) :)
>>
>>  I started writing a document explaining each and every command with
>> their expected outputs ( when correct params are given, when no params are
>> given and when wrong params are given ) I will continue writing the test
>> cases based on them.
>>
>> As discussed on Hangout, I will do a demo,  record it and share soon :)
>>
>> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I could finish most of the listing command and now working with the
>>> create and update commands. I'm running Java CLI to get an idea how the
>>> output should be presented. Had to fix some issues related to that "-"
>>> issue also, regarding auto-completion. I started writing test cases for
>>> utility methods, and will start writing test cases for Stratos specific
>>> ones this week. I'm using Tox to run my tests on different Python versions,
>>> 2.x ones and 3.z ones.
>>>
>>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>>> agentmilindu@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I invested last 2 week on some research on Testing frameworks and
>>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>>> experience, therefor I studied on that. Studied Java security API and
>>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>>
>>>> *Testing frameworks*
>>>>
>>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>>> GPL-compatible ) ]
>>>>
>>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>>> Java. Gives very descriptive outputs when found assertion errors.
>>>>
>>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>>
>>>> unittest2 is a backport of the new features added to the unittest
>>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>>
>>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>>
>>>> Very popular unit testing tool which is an alternative to Python’s
>>>> standard unittest module. Gives very descriptive outputs when found
>>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>>> compatible.
>>>>
>>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>>
>>>> Nose extends unittest to make testing easier. Same as PyTest.
>>>> Python 2 and 3 compatible.
>>>>
>>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>>
>>>> Tox is a generic virtualenv management and test command line tool. We
>>>> can setup several Python virtual environments and run our tests on those
>>>> environments. This is a very useful tool to ensure the compatibility with
>>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>>> compatible with tox. Able to easily integrate with continuous integration
>>>> servers like Jenkins.
>>>>
>>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>>> GPL-compatible ) ]
>>>>
>>>>  Python module that checks for interactive Python sessions in
>>>> docstrings, and then executes those sessions to verify that they work
>>>> exactly as shown.
>>>>
>>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>>
>>>> A great tool for command line testing, it issues the commands to the
>>>> underlying shell and compares the output with the intended output. Now
>>>> discontinued but bug-maintained.
>>>>
>>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>>
>>>> Successor of Atheist, which provides support to run shell commands on
>>>> background, send signal to processes, set assertions on command stdout or
>>>> stderr, etc. Very suitable in CLI testing tasks.
>>>>
>>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
>>>> license ]
>>>>
>>>> Something like Prego, but seems less features.
>>>>
>>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>>
>>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice
>>>> way for feature testing where we define the features in simple English and
>>>> that will become the tests.
>>>>
>>>>
>>>> I definitely will be using Tox because it makes us test the Python CLI
>>>> on different Python versions. But Tox alone can not test the CLI. We have
>>>> to us some other testing framework on Tox. I'm wondering what to use where.
>>>> We can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
>>>> But we have to test the CLI functionalities also, using some kind of CLI
>>>> testing tool. I think I need some advice here :)
>>>>
>>>> Meanwhile, I continued implementing other "list" CMD actions in Python
>>>> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
>>>> way to write a general method for error handling and error reporting.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>


-- 
Imesh Gunaratne

Senior Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Chamila De Alwis <ch...@wso2.com>.
Hi Milindu,

Great work so far! Could you mention what commands and outputs are less
clear?


Regards,
Chamila de Alwis
Committer and PMC Member - Apache Stratos
Software Engineer | WSO2 | +94772207163
Blog: code.chamiladealwis.com



On Sun, Aug 9, 2015 at 1:59 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> I have finished implementing all the CLI commands, except very few which I
> have some doubts ( like, how the output should be presented ) :)
>
>  I started writing a document explaining each and every command with their
> expected outputs ( when correct params are given, when no params are given
> and when wrong params are given ) I will continue writing the test cases
> based on them.
>
> As discussed on Hangout, I will do a demo,  record it and share soon :)
>
> On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I could finish most of the listing command and now working with the
>> create and update commands. I'm running Java CLI to get an idea how the
>> output should be presented. Had to fix some issues related to that "-"
>> issue also, regarding auto-completion. I started writing test cases for
>> utility methods, and will start writing test cases for Stratos specific
>> ones this week. I'm using Tox to run my tests on different Python versions,
>> 2.x ones and 3.z ones.
>>
>> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
>> agentmilindu@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I invested last 2 week on some research on Testing frameworks and
>>> Security Certificates. CA Bundles and  Pem files were something I had no
>>> experience, therefor I studied on that. Studied Java security API and
>>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>>
>>> *Testing frameworks*
>>>
>>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>>> GPL-compatible ) ]
>>>
>>> Python's unit testing module since 2.7. Very similar to JUnit for
>>> Java. Gives very descriptive outputs when found assertion errors.
>>>
>>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>>
>>> unittest2 is a backport of the new features added to the unittest
>>> testing framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>>
>>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>>
>>> Very popular unit testing tool which is an alternative to Python’s
>>> standard unittest module. Gives very descriptive outputs when found
>>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>>> compatible.
>>>
>>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>>
>>> Nose extends unittest to make testing easier. Same as PyTest.
>>> Python 2 and 3 compatible.
>>>
>>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>>
>>> Tox is a generic virtualenv management and test command line tool. We
>>> can setup several Python virtual environments and run our tests on those
>>> environments. This is a very useful tool to ensure the compatibility with
>>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>>> compatible with tox. Able to easily integrate with continuous integration
>>> servers like Jenkins.
>>>
>>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>>> GPL-compatible ) ]
>>>
>>>  Python module that checks for interactive Python sessions in
>>> docstrings, and then executes those sessions to verify that they work
>>> exactly as shown.
>>>
>>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>>
>>> A great tool for command line testing, it issues the commands to the
>>> underlying shell and compares the output with the intended output. Now
>>> discontinued but bug-maintained.
>>>
>>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>>
>>> Successor of Atheist, which provides support to run shell commands on
>>> background, send signal to processes, set assertions on command stdout or
>>> stderr, etc. Very suitable in CLI testing tasks.
>>>
>>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
>>> license ]
>>>
>>> Something like Prego, but seems less features.
>>>
>>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>>
>>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice way
>>> for feature testing where we define the features in simple English and that
>>> will become the tests.
>>>
>>>
>>> I definitely will be using Tox because it makes us test the Python CLI
>>> on different Python versions. But Tox alone can not test the CLI. We have
>>> to us some other testing framework on Tox. I'm wondering what to use where.
>>> We can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
>>> But we have to test the CLI functionalities also, using some kind of CLI
>>> testing tool. I think I need some advice here :)
>>>
>>> Meanwhile, I continued implementing other "list" CMD actions in Python
>>> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
>>> way to write a general method for error handling and error reporting.
>>>
>>>
>>>
>>>
>>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

I have finished implementing all the CLI commands, except very few which I
have some doubts ( like, how the output should be presented ) :)

 I started writing a document explaining each and every command with their
expected outputs ( when correct params are given, when no params are given
and when wrong params are given ) I will continue writing the test cases
based on them.

As discussed on Hangout, I will do a demo,  record it and share soon :)

On Wed, Jul 29, 2015 at 10:34 AM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> I could finish most of the listing command and now working with the create
> and update commands. I'm running Java CLI to get an idea how the output
> should be presented. Had to fix some issues related to that "-" issue also,
> regarding auto-completion. I started writing test cases for utility
> methods, and will start writing test cases for Stratos specific ones this
> week. I'm using Tox to run my tests on different Python versions, 2.x ones
> and 3.z ones.
>
> On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
> agentmilindu@gmail.com> wrote:
>
>> Hi,
>>
>> I invested last 2 week on some research on Testing frameworks and
>> Security Certificates. CA Bundles and  Pem files were something I had no
>> experience, therefor I studied on that. Studied Java security API and
>> Stratos's Java CLI's Certificate handling codes ( Keystores, etc ).
>>
>> *Testing frameworks*
>>
>> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
>> GPL-compatible ) ]
>>
>> Python's unit testing module since 2.7. Very similar to JUnit for
>> Java. Gives very descriptive outputs when found assertion errors.
>>
>> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>>
>> unittest2 is a backport of the new features added to the unittest testing
>> framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>>
>> 3. PyTest ( pytest.org/ ) [ MIT ]
>>
>> Very popular unit testing tool which is an alternative to Python’s
>> standard unittest module. Gives very descriptive outputs when found
>> assertion errors. Integrates nicely with setup.py. Python 2 and 3
>> compatible.
>>
>> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>>
>> Nose extends unittest to make testing easier. Same as PyTest.
>> Python 2 and 3 compatible.
>>
>> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>>
>> Tox is a generic virtualenv management and test command line tool. We can
>> setup several Python virtual environments and run our tests on those
>> environments. This is a very useful tool to ensure the compatibility with
>> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
>> compatible with tox. Able to easily integrate with continuous integration
>> servers like Jenkins.
>>
>> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
>> GPL-compatible ) ]
>>
>>  Python module that checks for interactive Python sessions in docstrings,
>> and then executes those sessions to verify that they work exactly as shown.
>>
>> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>>
>> A great tool for command line testing, it issues the commands to the
>> underlying shell and compares the output with the intended output. Now
>> discontinued but bug-maintained.
>>
>> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>>
>> Successor of Atheist, which provides support to run shell commands on
>> background, send signal to processes, set assertions on command stdout or
>> stderr, etc. Very suitable in CLI testing tasks.
>>
>> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
>> license ]
>>
>> Something like Prego, but seems less features.
>>
>> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>>
>>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice way
>> for feature testing where we define the features in simple English and that
>> will become the tests.
>>
>>
>> I definitely will be using Tox because it makes us test the Python CLI on
>> different Python versions. But Tox alone can not test the CLI. We have to
>> us some other testing framework on Tox. I'm wondering what to use where. We
>> can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
>> But we have to test the CLI functionalities also, using some kind of CLI
>> testing tool. I think I need some advice here :)
>>
>> Meanwhile, I continued implementing other "list" CMD actions in Python
>> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
>> way to write a general method for error handling and error reporting.
>>
>>
>>
>>
>>
>

Re: [GSoC 2015] Python CLI for Stratos : Weekly Update

Posted by Milindu Sanoj Kumarage <ag...@gmail.com>.
Hi,

I could finish most of the listing command and now working with the create
and update commands. I'm running Java CLI to get an idea how the output
should be presented. Had to fix some issues related to that "-" issue also,
regarding auto-completion. I started writing test cases for utility
methods, and will start writing test cases for Stratos specific ones this
week. I'm using Tox to run my tests on different Python versions, 2.x ones
and 3.z ones.

On Thu, Jul 9, 2015 at 2:52 PM, Milindu Sanoj Kumarage <
agentmilindu@gmail.com> wrote:

> Hi,
>
> I invested last 2 week on some research on Testing frameworks and Security
> Certificates. CA Bundles and  Pem files were something I had no experience,
> therefor I studied on that. Studied Java security API and Stratos's Java
> CLI's Certificate handling codes ( Keystores, etc ).
>
> *Testing frameworks*
>
> 1. Unittest ( docs.python.org/2/library/unittest.html ) [ PSF(
> GPL-compatible ) ]
>
> Python's unit testing module since 2.7. Very similar to JUnit for
> Java. Gives very descriptive outputs when found assertion errors.
>
> 2. Unittest2 ( pypi.python.org/pypi/unittest2 ) [ BSD ]
>
> unittest2 is a backport of the new features added to the unittest testing
> framework in Python 2.7 and onwards. Supports back to Python 2.4+.
>
> 3. PyTest ( pytest.org/ ) [ MIT ]
>
> Very popular unit testing tool which is an alternative to Python’s
> standard unittest module. Gives very descriptive outputs when found
> assertion errors. Integrates nicely with setup.py. Python 2 and 3
> compatible.
>
> 4. Nose ( nose.readthedocs.org/en/latest ) [ LGPL ]
>
> Nose extends unittest to make testing easier. Same as PyTest.
> Python 2 and 3 compatible.
>
> 5. Tox ( tox.readthedocs.org/en/latest/ ) [ MIT ]
>
> Tox is a generic virtualenv management and test command line tool. We can
> setup several Python virtual environments and run our tests on those
> environments. This is a very useful tool to ensure the compatibility with
> Python 2 and Python 3 versions. PyTest,  nose and unittest modules are
> compatible with tox. Able to easily integrate with continuous integration
> servers like Jenkins.
>
> 6. Doctest ( docs.python.org/2/library/doctest.htmlt ) [ PSF(
> GPL-compatible ) ]
>
>  Python module that checks for interactive Python sessions in docstrings,
> and then executes those sessions to verify that they work exactly as shown.
>
> 7. Atheist ( arco.esi.uclm.es/~david.villa/atheist/html/  ) [ GFDL ]
>
> A great tool for command line testing, it issues the commands to the
> underlying shell and compares the output with the intended output. Now
> discontinued but bug-maintained.
>
> 8. Prego ( bitbucket.org/arco_group/prego ) [ GPLv3+ ]
>
> Successor of Atheist, which provides support to run shell commands on
> background, send signal to processes, set assertions on command stdout or
> stderr, etc. Very suitable in CLI testing tasks.
>
> 9. ScriptTest ( pythonpaste.org/scripttest/ ) [  MIT-style permissive
> license ]
>
> Something like Prego, but seems less features.
>
> 10. Behave ( jenisys.github.io/behave.example/ ) [ BSD ]
>
>  A BDD framework and a cucumber-clone for Python. Cucumber is a nice way
> for feature testing where we define the features in simple English and that
> will become the tests.
>
>
> I definitely will be using Tox because it makes us test the Python CLI on
> different Python versions. But Tox alone can not test the CLI. We have to
> us some other testing framework on Tox. I'm wondering what to use where. We
> can use PyTest for unit test Stratos.py which calls the Stratos RESTAPI.
> But we have to test the CLI functionalities also, using some kind of CLI
> testing tool. I think I need some advice here :)
>
> Meanwhile, I continued implementing other "list" CMD actions in Python
> CLI. I see some repetition in error code handling stuffs, I'm thinking of a
> way to write a general method for error handling and error reporting.
>
>
>
>
>