Source code for challenges.scaffold

import os
import sys


[docs]class Scaffold: def __init__(self, conf): self.conf = conf
[docs] def scaffold(self): directory = self.conf.get_challenge_dir() if os.path.exists(directory): sys.exit('Directory ' + directory + ' already exists.') else: try: os.makedirs(directory) except OSError: sys.exit('Sorry, could not create ' + directory + '.') file = self.conf.get_challenge_file() if os.path.exists(file): sys.exit('File ' + file + ' already exists.') else: try: with open(file, 'w') as handle: handle.write(self.get_class_content()) except OSError: sys.exit('Sorry, could not write ' + file + '.') file = self.conf.get_unittest_file() if os.path.exists(file): sys.exit('File ' + file + ' already exists.') else: try: with open(file, 'w') as handle: handle.write(self.get_unittest_content()) except OSError: sys.exit('Sorry, could not write ' + file + '.')
[docs] def get_class_content(self): text = ''' from challenges.challenge import Challenge class {}(Challenge): sample = '43' def build(self): self.model.number = self.lineToIntegers(0)[0] def calc(self): self.result = self.model.number ''' return text.strip().format(self.conf.get_challenge_class())
[docs] def get_unittest_content(self): text = ''' import unittest from {}.challenge import {} class {}TestCase(unittest.TestCase): def setUp(self): self.challenge = {}() self.challenge.read() def test__init__(self): self.assertIsInstance(self.challenge, {}) ''' c = self.conf.get_challenge_class() return text.strip().format(c, c, c, c, c)