[ create a new paste ] login | about

Link: http://codepad.org/IRtpF1VL    [ raw code | fork ]

fgtrjhyu - Python, pasted on Apr 30:
#SConstruct script
#Building production object
#Building test object
#Running test
import os

class Lobby:
  def __init__(self):
    pass

  def environment(self):
    return Environment(ENV = os.environ)
    
  def product(self):
    return Product(self)

  def make(self):
    self.product().make()

class Product:
  def __init__(self, parent):
    self._parent = parent

  def environment(self):
    return self._parent.environment()

  def dest(self):
    return 'dest/product/classes'

  def src(self):
    return 'product/src'

  def target(self):
    return self.environment().Java(self.dest(), self.src())

  def test(self):
    return Test(self)

  def make(self):
    self.target()
    self.test().make()

class Test:
  def __init__(self, parent):
    self._parent = parent

  def junit(self):
    return 'test/lib/junit-4.10.jar'

  def environment(self):
    ret = self._parent.environment()
    ret['JAVACLASSPATH'] = [self._parent.dest(), self.junit()]
    return ret

  def src(self):
    return 'test/src'

  def dest(self):
    return 'dest/test/classes'

  def target(self):
    env = self.environment()
    ret = env.Java(self.dest(), self.src())
    env.Depends(ret, self._parent.dest())
    return ret

  def runner(self):
    return TestRunner(self)

  def make(self):
    self.target()
    self.runner().make()

class TestRunner:
  def __init__(self, parent):
    self._parent = parent

  def environment(self):
    ret = self._parent.environment()
    ret['JAVACLASSPATH'].append(self._parent.dest())
    return ret

  def dest(self):
    return 'dest/result/foo'

  def javaclasspath(self):
    return self.environment()['JAVACLASSPATH']

  def classpath(self):
    return ':'.join(self.javaclasspath())

  def tests(self):
    return 'SimpleTest'

  def mainclass(self):
    return 'org.junit.runner.JUnitCore'

  def main(self):
    return 'java -cp %s %s %s' % \
      (self.classpath(), self.mainclass(), self.tests())

  def target(self):
    env = self.environment()
    ret = env.Command(self.dest(), None, self.main())
    env.Depends(ret, self._parent.target())
    return ret

  def make(self):
    self.target()

Lobby().make()


Create a new paste based on this one


Comments: