예제 #1
0
    def test_arg_undefined(self):
        chars = string.ascii_letters.replace("n", '')
        arg = ("-" + random.choice(chars))
        with self.assertRaises(SystemExit):
            factoid.main(arg)

        print("Arg undefined test passed!")
예제 #2
0
 def test_arg_malformed(self):
     chars_no_whitespace = string.ascii_letters + string.digits
     chars = string.ascii_letters + string.digits + string.whitespace
     num_chars = random.randrange(0, 32)
     args = random.choice(chars_no_whitespace)
     args = args.join(random.choice(chars) for _ in range(num_chars))
     with self.assertRaises(SystemExit):
         factoid.main(args.split())
     print("Malformed argument case passed!")
예제 #3
0
    def test_too_many_args(self):
        valid_nums = range(len(factoid.factoids))  # Want extras to be valid
        num_additional = random.randrange(1, 32)  # Get random extras
        additional_args = tuple(
            random.choice(valid_nums) for _ in range(num_additional))
        arg = ("-n", "1") + additional_args  # Form final argv
        with self.assertRaises(Exception):
            factoid.main(arg)

        print("Too many args test passed!")
예제 #4
0
    def test_arg_oob(self):
        neg_test = ("-n", str(random.randrange(1, 32) * -1))
        pos_test = ("-n", str(random.randrange(len(factoid.factoids), 32)))
        with self.assertRaises(SystemExit) as neg_exit:
            factoid.main(neg_test)
        self.assertEqual(neg_exit.exception.code, 2)
        with self.assertRaises(SystemExit) as pos_exit:
            factoid.main(pos_test)
        self.assertEqual(pos_exit.exception.code, 2)

        print("Argument out of bounds test passed!")
예제 #5
0
    def test_n_valid(self):
        fact_no = random.randrange(0, len(factoid.factoids) - 1)
        arg = ("-n", str(fact_no))
        n, fact = factoid.main(arg)
        self.assertEqual(fact_no, n)
        self.assertEqual(fact, factoid.factoids[fact_no])

        print("Valid n test case passed!")
예제 #6
0
 def test_default(self):
     n, fact = factoid.main([])
     self.assertTrue(n in range(len(factoid.factoids)))
     self.assertEqual(fact, factoid.factoids[n])
     print("Default case passed!")