示例#1
0
 def setUp(self):
     super(TestStateDictionaryProcessing, self).setUp()
     self.machineName = 'MyFsm'
     self.fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: self.machineName})
     self.stateDict = {constants.STATE_NAME_ATTRIBUTE: 'MyState', 
                       constants.STATE_ACTION_ATTRIBUTE: 'MockAction', 
                       constants.NAMESPACE_ATTRIBUTE: 'fantasm_tests.config_test'}
示例#2
0
 def setUp(self):
     super(TestStateDictionaryProcessing, self).setUp()
     self.machineName = 'MyFsm'
     self.fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: self.machineName})
     self.stateDict = {constants.STATE_NAME_ATTRIBUTE: 'MyState', 
                       constants.STATE_ACTION_ATTRIBUTE: 'MockAction', 
                       constants.NAMESPACE_ATTRIBUTE: 'fantasm_tests.config_test'}
示例#3
0
 def test_contextTypesParsed(self):
     self.machineDict[constants.MACHINE_CONTEXT_TYPES_ATTRIBUTE] = {
         'counter': 'types.IntType'
     }
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(1, len(fsm.contextTypes))
     self.assertTrue('counter' in fsm.contextTypes)
示例#4
0
 def test_contextTypesParsed(self):
     self.machineDict[constants.MACHINE_CONTEXT_TYPES_ATTRIBUTE] = {
         'counter': 'types.IntType'
     }
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(1, len(fsm.contextTypes))
     self.assertTrue('counter' in fsm.contextTypes)
示例#5
0
文件: fsm_test.py 项目: iki/fantasm
 def test(self):
     machineName = 'foo'
     machineConfig = config._MachineConfig({'name':machineName})
     machineConfig.addState({'name':'foo', 'initial': True, 'action': 'fantasm_tests.actions.CountExecuteCalls'})
     currentConfig = ConfigurationMock(machines=[machineConfig])
     factory = FSM(currentConfig=currentConfig)
     context = factory.createFSMInstance('foo')
示例#6
0
 def test_contextTypesValueResolved(self):
     self.machineDict[constants.MACHINE_CONTEXT_TYPES_ATTRIBUTE] = {
         'counter': 'types.IntType',
         'batch-key': 'google.appengine.ext.db.Key'
     }
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(int, fsm.contextTypes['counter'])
     self.assertEquals(db.Key, fsm.contextTypes['batch-key'])
示例#7
0
 def test_contextTypesValueResolved(self):
     self.machineDict[constants.MACHINE_CONTEXT_TYPES_ATTRIBUTE] = {
         'counter': 'types.IntType',
         'batch-key': 'google.appengine.ext.db.Key'
     }
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(int, fsm.contextTypes['counter'])
     self.assertEquals(db.Key, fsm.contextTypes['batch-key'])
示例#8
0
 def test_contextTypesValueResolved(self):
     self.machineDict[constants.MACHINE_CONTEXT_TYPES_ATTRIBUTE] = {
         "counter": "types.IntType",
         "batch-key": "google.appengine.ext.db.Key",
     }
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(int, fsm.contextTypes["counter"])
     self.assertEquals(db.Key, fsm.contextTypes["batch-key"])
示例#9
0
 def setUp(self):
     super(TestAdvancedTransitionDictionaryProcessing, self).setUp()
     self.transDict = {
         constants.TRANS_EVENT_ATTRIBUTE: 'MyEvent',
         constants.TRANS_TO_ATTRIBUTE: 'state2'
     }
     self.fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: 'MyMachine', 
                                       constants.NAMESPACE_ATTRIBUTE: 'fantasm_tests.config_test',
                                       constants.TASK_RETRY_LIMIT_ATTRIBUTE: 100})
     self.state1 = self.fsm.addState({constants.STATE_NAME_ATTRIBUTE: 'state1', 
                                      constants.STATE_ACTION_ATTRIBUTE: 'MockAction'})
     self.state2 = self.fsm.addState({constants.STATE_NAME_ATTRIBUTE: 'state2', 
                                      constants.STATE_ACTION_ATTRIBUTE: 'MockAction'})
示例#10
0
 def setUp(self):
     super(TestAdvancedTransitionDictionaryProcessing, self).setUp()
     self.transDict = {
         constants.TRANS_EVENT_ATTRIBUTE: 'MyEvent',
         constants.TRANS_TO_ATTRIBUTE: 'state2'
     }
     self.fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: 'MyMachine', 
                                       constants.NAMESPACE_ATTRIBUTE: 'fantasm_tests.config_test',
                                       constants.TASK_RETRY_LIMIT_ATTRIBUTE: 100})
     self.state1 = self.fsm.addState({constants.STATE_NAME_ATTRIBUTE: 'state1', 
                                      constants.STATE_ACTION_ATTRIBUTE: 'MockAction'})
     self.state2 = self.fsm.addState({constants.STATE_NAME_ATTRIBUTE: 'state2', 
                                      constants.STATE_ACTION_ATTRIBUTE: 'MockAction'})
示例#11
0
 def test(self):
     machineName = 'foo'
     machineConfig = config._MachineConfig({'name': machineName})
     machineConfig.addState({
         'name':
         'foo',
         'initial':
         True,
         'action':
         'fantasm_tests.actions.CountExecuteCalls'
     })
     currentConfig = ConfigurationMock(machines=[machineConfig])
     factory = FSM(currentConfig=currentConfig)
     context = factory.createFSMInstance('foo')
示例#12
0
 def setUp(self):
     super(TestTransitionDictionaryProcessing, self).setUp()
     self.transDict = {
         constants.TRANS_EVENT_ATTRIBUTE: 'MyEvent',
         constants.TRANS_TO_ATTRIBUTE: 'GoodState'
     }
     self.fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: 'MyMachine', 
                                       constants.NAMESPACE_ATTRIBUTE: 'fantasm_tests.config_test',
                                       constants.QUEUE_NAME_ATTRIBUTE: 'somequeue',
                                       constants.TASK_RETRY_LIMIT_ATTRIBUTE: 100,
                                       constants.MIN_BACKOFF_SECONDS_ATTRIBUTE: 101,
                                       constants.MAX_BACKOFF_SECONDS_ATTRIBUTE: 102,
                                       constants.TASK_AGE_LIMIT_ATTRIBUTE: 103,
                                       constants.MAX_DOUBLINGS_ATTRIBUTE: 104})
     self.goodState = self.fsm.addState({constants.STATE_NAME_ATTRIBUTE: 'GoodState', 
                                         constants.STATE_ACTION_ATTRIBUTE: 'MockAction'})
示例#13
0
 def setUp(self):
     super(TestTransitionDictionaryProcessing, self).setUp()
     self.transDict = {
         constants.TRANS_EVENT_ATTRIBUTE: 'MyEvent',
         constants.TRANS_TO_ATTRIBUTE: 'GoodState'
     }
     self.fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: 'MyMachine', 
                                       constants.NAMESPACE_ATTRIBUTE: 'fantasm_tests.config_test',
                                       constants.QUEUE_NAME_ATTRIBUTE: 'somequeue',
                                       constants.TASK_RETRY_LIMIT_ATTRIBUTE: 100,
                                       constants.MIN_BACKOFF_SECONDS_ATTRIBUTE: 101,
                                       constants.MAX_BACKOFF_SECONDS_ATTRIBUTE: 102,
                                       constants.TASK_AGE_LIMIT_ATTRIBUTE: 103,
                                       constants.MAX_DOUBLINGS_ATTRIBUTE: 104})
     self.goodState = self.fsm.addState({constants.STATE_NAME_ATTRIBUTE: 'GoodState', 
                                         constants.STATE_ACTION_ATTRIBUTE: 'MockAction'})
示例#14
0
 def test_taskAgeLimitDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskAgeLimit, constants.DEFAULT_TASK_AGE_LIMIT)
示例#15
0
 def test_maxBackoffSecondsDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxBackoffSeconds, constants.DEFAULT_MAX_BACKOFF_SECONDS)
示例#16
0
 def test_settingMaxRetriesSetsTaskRetryLimit(self):
     """ maxRetries and taskRetryLimit should be set to the same value. """
     self.machineDict[constants.MAX_RETRIES_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskRetryLimit, 3)
示例#17
0
 def test_maxRetriesIssuesDeprecationWarning(self):
     loggingDouble = getLoggingDouble()
     self.machineDict[constants.MAX_RETRIES_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertTrue(fsm)
     self.assertEquals(loggingDouble.count["warning"], 1)
示例#18
0
 def test_maxRetriesParsed(self):
     self.machineDict[constants.MAX_RETRIES_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxRetries, 3)
示例#19
0
 def test_maxDoublingsDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxDoublings, constants.DEFAULT_MAX_DOUBLINGS)
示例#20
0
 def test_rootUrlOverridesDefault(self):
     fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: "MyMachine"}, rootUrl="/myfsm")
     self.assertEquals(fsm.url, "/myfsm/fsm/MyMachine/")
示例#21
0
 def test_queueParsed(self):
     queueName = 'SomeQueue'
     self.machineDict[constants.QUEUE_NAME_ATTRIBUTE] = queueName
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.queueName, queueName)
示例#22
0
 def test_maxDoublingsParsed(self):
     self.machineDict[constants.MAX_DOUBLINGS_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxDoublings, 3)
示例#23
0
 def test_nameParsed(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.name, self.machineName)
示例#24
0
 def test_rootUrlOverridesDefault(self):
     fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: 'MyMachine'}, rootUrl='/myfsm')
     self.assertEquals(fsm.url, '/myfsm/fsm/MyMachine/')
示例#25
0
 def test_urlIncludesHostName(self):
     fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: 'MyMachine'})
     self.assertEquals(fsm.url, '%sfsm/MyMachine/' % constants.DEFAULT_ROOT_URL)
示例#26
0
 def test_maxDoublingsDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxDoublings, constants.DEFAULT_MAX_DOUBLINGS)
示例#27
0
 def test_settingMaxRetriesSetsTaskRetryLimit(self):
     """ maxRetries and taskRetryLimit should be set to the same value. """
     self.machineDict[constants.MAX_RETRIES_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskRetryLimit, 3)
示例#28
0
 def test_queueHasDefaultValue(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.queueName, constants.DEFAULT_QUEUE_NAME)
示例#29
0
 def test_queueParsed(self):
     queueName = "SomeQueue"
     self.machineDict[constants.QUEUE_NAME_ATTRIBUTE] = queueName
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.queueName, queueName)
示例#30
0
 def test_noNamespaceYieldNoneAttribute(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.namespace, None)
示例#31
0
 def test_maxBackoffSecondsParsed(self):
     self.machineDict[constants.MAX_BACKOFF_SECONDS_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxBackoffSeconds, 3)
示例#32
0
 def test_namespaceParsed(self):
     namespace = 'MyNamespace'
     self.machineDict[constants.NAMESPACE_ATTRIBUTE] = namespace
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.namespace, namespace)
示例#33
0
 def test_maxRetriesDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxRetries, constants.DEFAULT_TASK_RETRY_LIMIT)
示例#34
0
 def test_maxRetriesParsed(self):
     self.machineDict[constants.MAX_RETRIES_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxRetries, 3)
示例#35
0
 def test_settingTaskRetryLimitSetsMaxRetries(self):
     """ taskRetryLimit and maxRetries should be set to the same value. """
     self.machineDict[constants.TASK_RETRY_LIMIT_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxRetries, 3)
示例#36
0
 def test_maxRetriesDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxRetries, constants.DEFAULT_TASK_RETRY_LIMIT)
示例#37
0
 def test_maxBackoffSecondsParsed(self):
     self.machineDict[constants.MAX_BACKOFF_SECONDS_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxBackoffSeconds, 3)
示例#38
0
 def test_maxRetriesIssuesDeprecationWarning(self):
     loggingDouble = getLoggingDouble()
     self.machineDict[constants.MAX_RETRIES_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertTrue(fsm)
     self.assertEquals(loggingDouble.count['warning'], 1)
示例#39
0
 def test_taskAgeLimitParsed(self):
     self.machineDict[constants.TASK_AGE_LIMIT_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskAgeLimit, 3)
示例#40
0
 def test_noNamespaceYieldNoneAttribute(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.namespace, None)
示例#41
0
 def test_maxDoublingsParsed(self):
     self.machineDict[constants.MAX_DOUBLINGS_ATTRIBUTE] = "3"
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxDoublings, 3)
示例#42
0
 def test_settingTaskRetryLimitSetsMaxRetries(self):
     """ taskRetryLimit and maxRetries should be set to the same value. """
     self.machineDict[constants.TASK_RETRY_LIMIT_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxRetries, 3)
示例#43
0
 def test_contextTypesDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.contextTypes, {})
示例#44
0
 def test_taskAgeLimitDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskAgeLimit, constants.DEFAULT_TASK_AGE_LIMIT)
示例#45
0
 def test_urlIncludesHostName(self):
     fsm = config._MachineConfig({constants.MACHINE_NAME_ATTRIBUTE: "MyMachine"})
     self.assertEquals(fsm.url, "%sfsm/MyMachine/" % constants.DEFAULT_ROOT_URL)
示例#46
0
 def test_taskAgeLimitParsed(self):
     self.machineDict[constants.TASK_AGE_LIMIT_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskAgeLimit, 3)
示例#47
0
 def test_nameParsed(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.name, self.machineName)
示例#48
0
 def test_maxBackoffSecondsDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.maxBackoffSeconds, constants.DEFAULT_MAX_BACKOFF_SECONDS)
示例#49
0
 def test_queueHasDefaultValue(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.queueName, constants.DEFAULT_QUEUE_NAME)
示例#50
0
 def test_contextTypesDefault(self):
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.contextTypes, {})
示例#51
0
 def test_namespaceParsed(self):
     namespace = "MyNamespace"
     self.machineDict[constants.NAMESPACE_ATTRIBUTE] = namespace
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.namespace, namespace)
示例#52
0
 def test_taskRetryLimitParsed(self):
     self.machineDict[constants.TASK_RETRY_LIMIT_ATTRIBUTE] = '3'
     fsm = config._MachineConfig(self.machineDict)
     self.assertEquals(fsm.taskRetryLimit, 3)