Re: CI and BDD with Python

Discussion in 'Python' started by Stefan Behnel, Jul 9, 2011.

  1. 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
     
    Stefan Behnel, Jul 9, 2011
    #1
    1. Advertising

  2. Stefan Behnel

    Phlip Guest

    On Jul 8, 9:36 pm, Stefan Behnel <> 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!
     
    Phlip, Jul 10, 2011
    #2
    1. Advertising

  3. Stefan Behnel

    mark curphey Guest

    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 <> 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
     
    mark curphey, Jul 10, 2011
    #3
  4. Stefan Behnel

    Phlip Guest

    On Jul 9, 7:39 pm, mark curphey <> 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..!
     
    Phlip, Jul 10, 2011
    #4
  5. Stefan Behnel

    Phlip Guest

    Re: Morelia for BDD in Python (was: CI and BDD with Python)

    On Jul 9, 8:38 pm, Ben Finney <> wrote:
    > Phlip <> writes:
    > > On Jul 9, 7:39 pm, mark curphey <> 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...
     
    Phlip, Jul 10, 2011
    #5
  6. Stefan Behnel

    Phlip Guest

    Re: Morelia for BDD in Python (was: CI and BDD with Python)

    > --
    >  \        “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...
     
    Phlip, Jul 10, 2011
    #6
  7. Re: Morelia for BDD in Python

    Phlip, 10.07.2011 07:10:
    > On Jul 9, 8:38 pm, Ben Finney<> wrote:
    >> Phlip<> writes:
    >>> On Jul 9, 7:39 pm, mark curphey<> 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
     
    Stefan Behnel, Jul 10, 2011
    #7
  8. Stefan Behnel

    Phlip Guest

    Re: Morelia for BDD in Python

    > 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...
     
    Phlip, Jul 10, 2011
    #8
  9. Stefan Behnel

    Phlip Guest

    Re: Morelia for BDD in Python

    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!
     
    Phlip, Jul 10, 2011
    #9
  10. Stefan Behnel

    rusi Guest

    Re: Morelia for BDD in Python

    On Jul 10, 10:21 am, Ben Finney <> wrote:
    > Phlip <> 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.
     
    rusi, Jul 10, 2011
    #10
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. sdffsdf

    Probleme de lecture de champs BDD

    sdffsdf, Apr 7, 2005, in forum: ASP .Net
    Replies:
    2
    Views:
    923
    Ken Cox [Microsoft MVP]
    Apr 7, 2005
  2. richard
    Replies:
    1
    Views:
    381
    Jan Burgy
    Sep 7, 2004
  3. Terry Reedy
    Replies:
    9
    Views:
    886
    Gregory Ewing
    Jun 20, 2010
  4. Phillip Gawlowski
    Replies:
    2
    Views:
    102
    Eivind Eklund
    May 5, 2008
  5. Clinton D. Judy

    BDD and TDD - What are they for?

    Clinton D. Judy, Aug 15, 2008, in forum: Ruby
    Replies:
    40
    Views:
    411
    David Masover
    Aug 21, 2008
Loading...

Share This Page