64
69
self.assertEqual(self.FLAGS.false, True)
65
70
self.assertEqual(self.FLAGS.true, False)
72
def test_define_float(self):
73
flags.DEFINE_float('float', 6.66, 'desc', flag_values=self.FLAGS)
74
self.assertEqual(self.FLAGS.float, 6.66)
76
def test_define_multistring(self):
77
flags.DEFINE_multistring('multi', [], 'desc', flag_values=self.FLAGS)
79
argv = ['flags_test', '--multi', 'foo', '--multi', 'bar']
82
self.assertEqual(self.FLAGS.multi, ['foo', 'bar'])
84
def test_define_list(self):
85
flags.DEFINE_list('list', ['foo'], 'desc', flag_values=self.FLAGS)
87
self.assert_(self.FLAGS['list'])
88
self.assertEqual(self.FLAGS.list, ['foo'])
90
argv = ['flags_test', '--list=a,b,c,d']
93
self.assertEqual(self.FLAGS.list, ['a', 'b', 'c', 'd'])
96
flags.DEFINE_integer('error', 1, 'desc', flag_values=self.FLAGS)
98
self.assertEqual(self.FLAGS.error, 1)
100
argv = ['flags_test', '--error=foo']
101
self.assertRaises(exceptions.SystemExit, self.FLAGS, argv)
67
103
def test_declare(self):
68
104
self.assert_('answer' not in self.global_FLAGS)
69
105
flags.DECLARE('answer', 'nova.tests.declare_flags')
76
112
flags.DECLARE('answer', 'nova.tests.declare_flags')
77
113
self.assertEqual(self.global_FLAGS.answer, 256)
115
def test_getopt_non_interspersed_args(self):
116
self.assert_('runtime_answer' not in self.global_FLAGS)
118
argv = ['flags_test', 'extra_arg', '--runtime_answer=60']
119
args = self.global_FLAGS(argv)
120
self.assertEqual(len(args), 3)
121
self.assertEqual(argv, args)
79
123
def test_runtime_and_unknown_flags(self):
80
124
self.assert_('runtime_answer' not in self.global_FLAGS)
114
158
self.assertEqual(FLAGS.flags_unittest, 'foo')
115
159
FLAGS.flags_unittest = 'bar'
116
160
self.assertEqual(FLAGS.flags_unittest, 'bar')
162
def test_flag_overrides(self):
163
self.assertEqual(FLAGS.flags_unittest, 'foo')
164
self.flags(flags_unittest='bar')
165
self.assertEqual(FLAGS.flags_unittest, 'bar')
166
self.assertEqual(FLAGS['flags_unittest'].value, 'bar')
167
self.assertEqual(FLAGS.FlagValuesDict()['flags_unittest'], 'bar')
169
self.assertEqual(FLAGS.flags_unittest, 'foo')
170
self.assertEqual(FLAGS['flags_unittest'].value, 'foo')
171
self.assertEqual(FLAGS.FlagValuesDict()['flags_unittest'], 'foo')
173
def test_flagfile(self):
174
flags.DEFINE_string('string', 'default', 'desc',
175
flag_values=self.FLAGS)
176
flags.DEFINE_integer('int', 1, 'desc', flag_values=self.FLAGS)
177
flags.DEFINE_bool('false', False, 'desc', flag_values=self.FLAGS)
178
flags.DEFINE_bool('true', True, 'desc', flag_values=self.FLAGS)
180
(fd, path) = tempfile.mkstemp(prefix='nova', suffix='.flags')
183
os.write(fd, '--string=foo\n--int=2\n--false\n--notrue\n')
186
self.FLAGS(['flags_test', '--flagfile=' + path])
188
self.assertEqual(self.FLAGS.string, 'foo')
189
self.assertEqual(self.FLAGS.int, 2)
190
self.assertEqual(self.FLAGS.false, True)
191
self.assertEqual(self.FLAGS.true, False)
195
def test_defaults(self):
196
flags.DEFINE_string('foo', 'bar', 'help', flag_values=self.FLAGS)
197
self.assertEqual(self.FLAGS.foo, 'bar')
199
self.FLAGS['foo'].SetDefault('blaa')
200
self.assertEqual(self.FLAGS.foo, 'blaa')
202
def test_templated_values(self):
203
flags.DEFINE_string('foo', 'foo', 'help', flag_values=self.FLAGS)
204
flags.DEFINE_string('bar', 'bar', 'help', flag_values=self.FLAGS)
205
flags.DEFINE_string('blaa', '$foo$bar', 'help', flag_values=self.FLAGS)
206
self.assertEqual(self.FLAGS.blaa, 'foobar')