view autobot/projects/mozmill/__init__.py @ 224:c989bbb323cd

update to use mutt for mozmill; tests now run, just fail
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 27 Jun 2011 21:08:36 -0700
parents c82a46673ce9
children
line wrap: on
line source

from autobot.process.factory import FirefoxDownloaderFactory
from autobot.process.factory import VirtualenvFactory
from buildbot.steps.shell import ShellCommand
from buildbot.steps.shell import WithProperties

class TestMozmillFactory(VirtualenvFactory, FirefoxDownloaderFactory):
  """
  factory to test Mozmill
  http://github.com/mozautomation/mozmill
  """

  # VCS
  sources = {'git': ['http://github.com/mozautomation/mozmill.git']}
  
  def __init__(self, platform, git=None, firefox_url=None,
               tests='http://hg.mozilla.org/qa/mozmill-tests'):

    # setup the environment
    VirtualenvFactory.__init__(self, name='mozmill', git=git)
                               
    # currently, mozmill-tests are dealt with separately here
    # this is to avoid having mozmill depend on them or their changes
    # ideally, these would be even more specifiable

    # install mozmill in development mode
    # TODO: also install mozmill in `install` mode to ensure we didn't break that
    self.addStep(ShellCommand(command=[WithProperties('%(python)s'), 'setup_development.py'],
                              workdir=WithProperties('%(virtualenv)s/src/mozmill'),
                              description='setup_development.py'
                              ))

    # ensure mozmill works at all
    self.findScript('mozmill')
    self.addStep(ShellCommand(command=[WithProperties('%(mozmill)s'), '--help'],
                              description='mozmill --help'))
    
    # get firefox
    FirefoxDownloaderFactory.__init__(self, platform=platform, base_url=firefox_url)

    # run the in-built tests
    self.findScript('mutt')
    self.addStep(ShellCommand(command=[WithProperties('%(mutt)s'),
                                       '-b', WithProperties('%(firefox)s')],
                              description='run mozmill internal tests'))

    # get the QA tests
    test_dir = tests.rsplit('/', 1)[-1]
    self.addStep(ShellCommand(command=['rm', '-rf', test_dir]))
    self.addStep(ShellCommand(command=['hg', 'clone', tests]))

    # run the QA tests
    
    # [TODO]