Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: CI and BDD with Python

Reply
Thread Tools

Re: CI and BDD with Python

 
 
Stefan Behnel
Guest
Posts: n/a
 
      07-09-2011
mark curphey, 09.07.2011 01:41:
> And for CI having been using Hudson for a while, any real advantages in a Python / Django world for adopting something native like Trac and one of the CI plugins like Bitten?


I warmly recommend Jenkins (i.e. Hudson) for anything CI. It gives you tons
of plugins and configuration options together with full information
awareness about your build status and dependencies through a nice web
interface.

The only reason to go native here is that it may become simpler to set up
Python build and test jobs. But given that it's usually just a couple of
shell commands that you write once, you'd miss more from the interface than
what you gain from a quicker job setup.

Stefan

 
Reply With Quote
 
 
 
 
Phlip
Guest
Posts: n/a
 
      07-10-2011
On Jul 8, 9:36*pm, Stefan Behnel <(E-Mail Removed)> wrote:
> mark curphey, 09.07.2011 01:41:
>
> > And for CI having been using Hudson for a while, any real advantages ina Python / Django world for adopting something native like Trac and one ofthe CI plugins like Bitten?


I'm kind'a partial to Morelia for BDD.

Don't be fooled by Ruby's RSpec - it's _not_ "BDD". In my exalted
opinion. "BDD" means "your customer gives you requirements as
sentences, and you make them into executable statements." That's what
Cucumber does, which Morelia learns from.

And BDD and CI are orthogonal. BDD should be part of a complete TDD
test suite, and your CI tool should run that.

I still like CruiseControl.rb - even though it has bugs when it sees
too many git integrations. Hudson had way too many features, and CCrb
mildly presumes you know how to operate its .cruise/projects folder
manually!
 
Reply With Quote
 
 
 
 
mark curphey
Guest
Posts: n/a
 
      07-10-2011
Thanks. FWIW I played with a bunch (Freshen, Morelia, Lettuce....) over the last few days and Lettuce appears to be the most "actively" maintained and closest to a cucumber-like implementation IMHO. I have decided to adopt it for now. I played with a few CI servers but Jenkins (Hudson) is tough to beat IMHO but I am sure this is just my personal preference. Anyways thanks for the help. Cheers, Mark


On Jul 9, 2011, at 7:05 PM, Phlip wrote:

> On Jul 8, 9:36 pm, Stefan Behnel <(E-Mail Removed)> wrote:
>> mark curphey, 09.07.2011 01:41:
>>
>>> And for CI having been using Hudson for a while, any real advantages in a Python / Django world for adopting something native like Trac and one of the CI plugins like Bitten?

>
> I'm kind'a partial to Morelia for BDD.
>
> Don't be fooled by Ruby's RSpec - it's _not_ "BDD". In my exalted
> opinion. "BDD" means "your customer gives you requirements as
> sentences, and you make them into executable statements." That's what
> Cucumber does, which Morelia learns from.
>
> And BDD and CI are orthogonal. BDD should be part of a complete TDD
> test suite, and your CI tool should run that.
>
> I still like CruiseControl.rb - even though it has bugs when it sees
> too many git integrations. Hudson had way too many features, and CCrb
> mildly presumes you know how to operate its .cruise/projects folder
> manually!
> --
> http://mail.python.org/mailman/listinfo/python-list


 
Reply With Quote
 
Phlip
Guest
Posts: n/a
 
      07-10-2011
On Jul 9, 7:39*pm, mark curphey <(E-Mail Removed)> wrote:

> Thanks. FWIW I played with a bunch (Freshen, Morelia, Lettuce....)


Morelia is "undermaintained" because it's finished. It attaches to any
pre-existing TestCase-style test runner, hence there's nothing to
maintain!

Packages like Lettuce rebuild the entire TestCase back-end just to
change the front end. That forces its maintainer to then do the Red
Queen thing, and constantly compete with all other test runners just
to stay in place. Props for the effort, though..!
 
Reply With Quote
 
Phlip
Guest
Posts: n/a
 
      07-10-2011
On Jul 9, 8:38*pm, Ben Finney <(E-Mail Removed)> wrote:
> Phlip <(E-Mail Removed)> writes:
> > On Jul 9, 7:39*pm, mark curphey <(E-Mail Removed)> wrote:

>
> > > Thanks. FWIW I played with a bunch (Freshen, Morelia, Lettuce....)

>
> > Morelia is "undermaintained" because it's finished. It attaches to any
> > pre-existing TestCase-style test runner, hence there's nothing to
> > maintain!

>
> It looks good! But it's not yet in Debian


Tx - I never added anything to a distro before! But..!

'sudo pip install morelia' just worked for me, on Ubuntu. I don't
think a python-morelia aptitude package would add any value. Such test
rigs shall never have any embedded C code or other shenanigans.

If I needed to think of a feature to add, it would be P<name> notation
in the regular expressions, to then enforce the names of the matching
arguments. But this is fluff; real programmers can do without it. If I
worked closer to the center of the BDD thought leadership I'd know
what else to add...
 
Reply With Quote
 
Phlip
Guest
Posts: n/a
 
      07-10-2011
> --
> *\ * * * *“That's the essence of science: Ask an impertinent question, |
> * `\ * * * * * *and you're on the way to the pertinent answer.” —Jacob |
> _o__) * * * * * * * * * * * * * *Boronowski, _The Ascent of Man_, 1976 |
> Ben Finney


That nose keeps reminding me of the start of one of the Pirates of the
Caribbean movies...
 
Reply With Quote
 
Stefan Behnel
Guest
Posts: n/a
 
      07-10-2011
Phlip, 10.07.2011 07:10:
> On Jul 9, 8:38 pm, Ben Finney<(E-Mail Removed)> wrote:
>> Phlip<(E-Mail Removed)> writes:
>>> On Jul 9, 7:39 pm, mark curphey<(E-Mail Removed)> wrote:

>>
>>>> Thanks. FWIW I played with a bunch (Freshen, Morelia, Lettuce....)

>>
>>> Morelia is "undermaintained" because it's finished. It attaches to any
>>> pre-existing TestCase-style test runner, hence there's nothing to
>>> maintain!

>>
>> It looks good! But it's not yet in Debian

>
> Tx - I never added anything to a distro before! But..!
>
> 'sudo pip install morelia' just worked for me, on Ubuntu. I don't
> think a python-morelia aptitude package would add any value.


There's no "pip uninstall", though.

Stefan

 
Reply With Quote
 
Phlip
Guest
Posts: n/a
 
      07-10-2011
> I think it would add great value, since without it I'm unlikely to
> bother using Morelia in any project. The maintenance burden is too high
> to keep adding dependencies that come from a distinct dependency system
> outside my OS.


pip freeze! Specifically, we already added pip freeze and virtualenv
support to our project's fab file...

> There's no "pip uninstall", though.


I can see that would matter to projects you would want to uninstall,
but not Morelia...
 
Reply With Quote
 
Phlip
Guest
Posts: n/a
 
      07-10-2011
Two of my feature requests for Morelia:

- integrate with the test runner (nose etc.) to provide one
dot . per passing step

- insert a long multi-line abstract string (typically
XML) with inside [[CDATA-style escaping tags

- the ability to stub a step as <not passing yet>

- the ability to pass a | delimited | table into a step
as an argument containing an array, instead of unrolling
the table into multiple calls to one step

- a rapid conversion to an HTML report, with folding blocks,
as an instant project documentation.

Lack of the second option is why we _didn't_ use M for the BDD test
runner on our latest project. (The onsite customer is an XML-freak,
AND the lead architect until I can manage to retire him upstairs!

But if I could put those four in, then write a disposable script that
converted our XML "project definition" file back into Morelia-Cucumber-
Gherkin notation, I'd have Morelia back in our project!
 
Reply With Quote
 
rusi
Guest
Posts: n/a
 
      07-10-2011
On Jul 10, 10:21*am, Ben Finney <(E-Mail Removed)> wrote:
> Phlip <(E-Mail Removed)> writes:
> > 'sudo pip install morelia' just worked for me, on Ubuntu.

>
> The problem with ‘pip’ is that it's a parallel package installation that
> ignores the available package management system on the OS.
>
> That's not a fault of ‘pip’ or Setuptools or PyPI or the rest; but it's
> a higher maintenance burden for the user than getting a package from the
> same system that provides all the rest of their packages on the
> computer.
>
> On operating systems with poor package management, Python's distutils
> and PyPI etc. are better than nothing. But on an OS like Debian with
> good package management already for free software, it's a step backward
> to rely on external dependencies from a disjoint package system.


Just curious: Do you manage to stay within debian packages and have
all the python packages you want/need at the versions that are most
convenient?

For myself, until recently my debian testing did not even give
python2.7.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: introducing Lettuce, BDD tool for python with Django integration Terry Reedy Python 9 06-20-2010 01:44 AM
BDD and TDD - What are they for? Clinton D. Judy Ruby 40 08-21-2008 03:23 AM
What to cover for a TDD and BDD toolkit/course? Phillip Gawlowski Ruby 2 05-05-2008 11:47 AM
Probleme de lecture de champs BDD sdffsdf ASP .Net 2 04-07-2005 12:00 PM
Comment acceder a un champ de bdd par son nom, (ou acces a un tuplede tuples) richard Python 1 09-07-2004 09:25 PM



Advertisments