예제 #1
0
	def test_correctly_sets_config_data(self, merge_mock, read_mock):
		fileData = {'foo': 'bar'}
		read_mock.return_value = fileData
		merge_mock.return_value = fileData
		config = Config()
		result = config.load('test')
		merge_mock.assert_called_with({}, fileData)
		self.assertEquals(config.data, fileData)
예제 #2
0
class App(object):
	""" Base application class

	Responsible for:
	- bootstrapping
	- setting configs
	- dependency management
	- running the application
	"""
	
	def __init__ (self):
		self.config = Config()
		self.baseGroup = Group('base')
		self.bootstrap()

	def bootstrap (self):
		""" Bootstrap the application """
		self.loadHomeConfig()
		self.loadLocalConfig()
		self.loadCommands()

	def loadHomeConfig (self):
		""" Load Config From Home Directory """
		homepath = expanduser('~') + '/' + CONFIG_FILE
		self.config.load(homepath)

	def loadLocalConfig (self):
		""" Load Config From Local (Current) Directory """
		localpath = './' + CONFIG_FILE
		self.config.load(localpath)

	def loadCommands (self):
		""" Load Commands from the current configs """
		commands = self.config.get('commands')
		if commands is None:
			return False
		for commandData in commands:
			command = self.createCommand(commandData)
			self.addCommand(command)
		return True

	def addCommand(self, command):
		if not isinstance(command, (Command)):
			return False
		commandGroups = command.getGroups()
		childGroup = self.baseGroup.resolveGroups(commandGroups)
		childGroup.add(command)
		return True

	def createCommand(self, commandData):
		return Command(commandData)
	
	def run(self):		
		self.baseGroup.fire()
예제 #3
0
	def __init__ (self):
		self.config = Config()
		self.baseGroup = Group('base')
		self.bootstrap()
예제 #4
0
	def test_it_will_return_None_if_the_value_is_None(self):
		config = Config()
		config.data = { 'test': None }
		result = config.get('test', 'default')
		self.assertEquals(result, None)
예제 #5
0
	def test_it_will_return_the_default_if_key_doesnt_exist(self):
		config = Config()
		config.data = {}
		result = config.get('test', 'default')
		self.assertEquals(result, 'default')
예제 #6
0
	def test_it_will_return_the_value_of_a_data_key(self):
		config = Config()
		config.data = {'test': 'value'}
		result = config.get('test', 'default')
		self.assertEquals(result, 'value')