def test_begin(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{}] transactionCommands.begin(fso, None) self.assertEqual(len(fso.dictionaryStack), 2) transactionCommands.begin(fso, None) self.assertEqual(len(fso.dictionaryStack), 3)
def test_unsetValue2(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 1}, {'a': 2}, {'a': 3}] dataCommands.unsetValue(fso, ['UNSET', 'a']) self.assertEqual(fso.dictionaryStack[2].get('a'), None) self.assertEqual(fso.unsetVariables.count('a'), 1)
def test_commit2(self): fso = fakeStateObject.FakeStateObject() fso.unsetVariables = ['d'] fso.dictionaryStack = [{'a': 1, 'd': 10}, {'a': 2, 'b': 9}, {'a': 3}] transactionCommands.commit(fso, None) self.assertEqual(len(fso.unsetVariables), 0) self.assertEqual(fso.dictionaryStack[0].get('d'), None)
def test_setValue(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a', 1}, {'b': 10}] dataCommands.setValue(fso, ['SET', 'a', 15]) dataCommands.setValue(fso, ['SET', 'b', 99]) self.assertEqual(fso.dictionaryStack[1]['a'], 15) self.assertEqual(fso.dictionaryStack[1]['b'], 99)
def test_unsetValue1(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 5, 'b': 10, 'c': 100}] dataCommands.unsetValue(fso, ['UNSET', 'a']) self.assertEqual(fso.dictionaryStack[0].get('a'), None) self.assertEqual(fso.dictionaryStack[0].get('b'), 10) # test a double unset dataCommands.unsetValue(fso, ['UNSET', 'a']) self.assertEqual(fso.dictionaryStack[0].get('a'), None)
def test_getValue3(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 1}, {'a': 2}, {'a': 3}] fso.unsetVariables.append('a') old_stdout = sys.stdout sys.stdout = mystdout = StringIO() dataCommands.getValue(fso, ['GET', 'a']) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), 'NULL\n')
def test_getValue2(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 1}, {'a': 2}, {'a': 3}] old_stdout = sys.stdout sys.stdout = mystdout = StringIO() dataCommands.getValue(fso, ['GET', 'a']) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), '3\n')
def test_numEq2(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 5}, {'b': 10}, {'c': 10}, {'d': 5}] old_stdout = sys.stdout sys.stdout = mystdout = StringIO() dataCommands.numEq(fso, ['NUMEQUALTO', 5]) dataCommands.numEq(fso, ['NUMEQUALTO', 1]) dataCommands.numEq(fso, ['NUMEQUALTO', 10]) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), '2\n0\n2\n')
def test_numEq3(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 5, 'b': 10, 'c': 10, 'd': 5}] fso.unsetVariables.append('b') old_stdout = sys.stdout sys.stdout = mystdout = StringIO() dataCommands.numEq(fso, ['NUMEQUALTO', 5]) dataCommands.numEq(fso, ['NUMEQUALTO', 1]) dataCommands.numEq(fso, ['NUMEQUALTO', 10]) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), '2\n0\n1\n')
def test_getValue1(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{'a': 5, 'b': 10, 'c': 100}] old_stdout = sys.stdout sys.stdout = mystdout = StringIO() dataCommands.getValue(fso, ['GET', 'a']) dataCommands.getValue(fso, ['GET', 'b']) dataCommands.getValue(fso, ['GET', 'c']) dataCommands.getValue(fso, ['GET', 'c']) dataCommands.getValue(fso, ['GET', 'z']) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), '5\n10\n100\n100\nNULL\n')
def test_commit1(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{}] old_stdout = sys.stdout sys.stdout = mystdout = StringIO() transactionCommands.commit(fso, None) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), 'NO TRANSACTION\n') fso.unsetVariables = ['w'] fso.dictionaryStack = [{'a': 1, 'd': 10}, {'a': 2, 'b': 9}, {'a': 3}] transactionCommands.commit(fso, None) self.assertEqual(len(fso.unsetVariables), 0) self.assertEqual(fso.dictionaryStack[0]['a'], 3) self.assertEqual(fso.dictionaryStack[0]['b'], 9) self.assertEqual(fso.dictionaryStack[0]['d'], 10)
def test_rollback(self): fso = fakeStateObject.FakeStateObject() fso.dictionaryStack = [{}] old_stdout = sys.stdout sys.stdout = mystdout = StringIO() transactionCommands.rollback(fso, None) sys.stdout = old_stdout self.assertEqual(mystdout.getvalue(), 'NO TRANSACTION\n') fso.unsetVariables = ['a'] fso.dictionaryStack = [{'a': 1}, {'a': 2}, {'a': 3}] transactionCommands.rollback(fso, None) self.assertEqual( fso.dictionaryStack[len(fso.dictionaryStack) - 1]['a'], 2) self.assertEqual(len(fso.unsetVariables), 0) transactionCommands.rollback(fso, None) self.assertEqual( fso.dictionaryStack[len(fso.dictionaryStack) - 1]['a'], 1)