def test_reload_float(self): limits_file = StringIO.StringIO("""<limits> <limit id="0"/> <limit id="1"/> </limits>""") with warnings.catch_warnings(record=True) as w: tools._setup_limits('config.file', limits_file, do_reload=3.14) self.assertEqual(len(w), 0) self.assertEqual(self.parsed, [(0, "0"), (1, "1")]) self.assertEqual(self.lims, ['Limit 0', 'Limit 1']) self.assertEqual(self.cmds, [('reload', ('spread', 3.14))]) self.assertEqual(self.stderr.getvalue(), "")
def test_basic(self): limits_file = StringIO.StringIO("""<limits> <limit id="0"/> <limit id="1"/> </limits>""") with warnings.catch_warnings(record=True) as w: tools._setup_limits('config.file', limits_file) self.assertEqual(len(w), 0) self.assertEqual(self.parsed, [(0, "0"), (1, "1")]) self.assertEqual(self.lims, ["Limit 0", "Limit 1"]) self.assertEqual(self.cmds, [("reload", ())]) self.assertEqual(self.stderr.getvalue(), '')
def test_bad_tag(self): limits_file = StringIO.StringIO("""<limits> <timil id="0"/> <limit id="1"/> </limits>""") with warnings.catch_warnings(record=True) as w: tools._setup_limits('config.file', limits_file) self.assertEqual(len(w), 1) self.assertIn("Unrecognized tag 'timil' in limits file at index 0", w[-1].message) self.assertEqual(self.parsed, [(1, "1")]) self.assertEqual(self.lims, ['Limit 1']) self.assertEqual(self.cmds, [('reload', ())]) self.assertEqual(self.stderr.getvalue(), "")
def test_bad_limit(self): limits_file = StringIO.StringIO("""<limits> <limit id="0"/> <limit id="1"/> <limit id="2"/> </limits>""") self.fail_idx = 1 with warnings.catch_warnings(record=True) as w: tools._setup_limits('config.file', limits_file) self.assertEqual(len(w), 1) self.assertIn("Couldn't understand limit at index 1: Failed to " "parse", w[-1].message) self.assertEqual(self.parsed, [(0, "0"), (1, "1"), (2, "2")]) self.assertEqual(self.lims, ['Limit 0', 'Limit 2']) self.assertEqual(self.cmds, [('reload', ())]) self.assertEqual(self.stderr.getvalue(), "")
def test_basic_dryrun(self): limits_file = StringIO.StringIO("""<limits> <limit id="0"/> <limit id="1"/> </limits>""") with warnings.catch_warnings(record=True) as w: tools._setup_limits('config.file', limits_file, dry_run=True) self.assertEqual(len(w), 0) self.assertEqual(self.parsed, [(0, "0"), (1, "1")]) self.assertEqual(self.lims, None) self.assertEqual(self.cmds, []) self.assertEqual(self.stderr.getvalue(), "Installing the following limits:\n" " 'Limit 0'\n" " 'Limit 1'\n" "Issuing command: reload\n")