2013-08-02 09:21:50 -05:00
|
|
|
import unittest
|
2017-03-23 13:37:20 +01:00
|
|
|
import random
|
2013-08-02 09:21:50 -05:00
|
|
|
|
2016-08-17 11:57:29 -07:00
|
|
|
from robot_name import Robot
|
2014-06-11 15:06:22 +02:00
|
|
|
|
2014-02-22 10:55:33 +08:00
|
|
|
|
2018-06-13 09:12:09 -04:00
|
|
|
class RobotNameTest(unittest.TestCase):
|
2020-08-03 07:09:18 -07:00
|
|
|
# assertRegex() alias to address DeprecationWarning
|
2016-10-19 17:04:07 +02:00
|
|
|
# assertRegexpMatches got renamed in version 3.2
|
|
|
|
|
if not hasattr(unittest.TestCase, "assertRegex"):
|
|
|
|
|
assertRegex = unittest.TestCase.assertRegexpMatches
|
|
|
|
|
|
2014-08-04 14:05:29 +02:00
|
|
|
name_re = r'^[A-Z]{2}\d{3}$'
|
2013-08-02 09:21:50 -05:00
|
|
|
|
|
|
|
|
def test_has_name(self):
|
2016-10-19 17:04:07 +02:00
|
|
|
self.assertRegex(Robot().name, self.name_re)
|
2013-08-02 09:21:50 -05:00
|
|
|
|
|
|
|
|
def test_name_sticks(self):
|
|
|
|
|
robot = Robot()
|
|
|
|
|
robot.name
|
|
|
|
|
self.assertEqual(robot.name, robot.name)
|
|
|
|
|
|
|
|
|
|
def test_different_robots_have_different_names(self):
|
|
|
|
|
self.assertNotEqual(
|
|
|
|
|
Robot().name,
|
|
|
|
|
Robot().name
|
|
|
|
|
)
|
|
|
|
|
|
2016-02-17 17:45:05 -05:00
|
|
|
def test_reset_name(self):
|
2015-02-28 13:26:00 -06:00
|
|
|
# Set a seed
|
|
|
|
|
seed = "Totally random."
|
|
|
|
|
|
|
|
|
|
# Initialize RNG using the seed
|
|
|
|
|
random.seed(seed)
|
|
|
|
|
|
|
|
|
|
# Call the generator
|
2013-08-02 09:21:50 -05:00
|
|
|
robot = Robot()
|
|
|
|
|
name = robot.name
|
2015-02-28 13:26:00 -06:00
|
|
|
|
|
|
|
|
# Reinitialize RNG using seed
|
|
|
|
|
random.seed(seed)
|
|
|
|
|
|
|
|
|
|
# Call the generator again
|
2013-08-02 09:21:50 -05:00
|
|
|
robot.reset()
|
|
|
|
|
name2 = robot.name
|
|
|
|
|
self.assertNotEqual(name, name2)
|
2016-10-19 17:04:07 +02:00
|
|
|
self.assertRegex(name2, self.name_re)
|
|
|
|
|
|
2013-08-02 09:21:50 -05:00
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
unittest.main()
|