Revision 4a25486d

b/kamaki/cli/argument/__init__.py
213 213

  
214 214
    @value.setter
215 215
    def value(self, newvalue):
216
        if newvalue == self.default:
217
            self._value = newvalue
218
            return
216 219
        try:
217
            self._value = self.default if (
218
                newvalue == self.default) else int(newvalue)
220
            if int(newvalue) == float(newvalue):
221
                self._value = int(newvalue)
222
            else:
223
                raise ValueError('Raise int argument error')
219 224
        except ValueError:
220 225
            raiseCLIError(CLISyntaxError(
221 226
                'IntArgument Error',
b/kamaki/cli/argument/test.py
228 228
    def test_value(self):
229 229
        ia = argument.IntArgument(parsed_name='--ia')
230 230
        self.assertEqual(ia.value, None)
231
        for v in (1, 0, -1, 923455555555555555555555555555555):
231
        for v in (1, 0, -1):
232 232
            ia.value = v
233 233
            self.assertEqual(ia.value, v)
234
        for v in ('1', '-1', 2.8):
234
        for v in ('1', '-1'):
235 235
            ia.value = v
236 236
            self.assertEqual(ia.value, int(v))
237 237
        for v, err in (
238 238
                ('invalid', errors.CLIError),
239
                (2.8, errors.CLIError),
240
                (923455555555555555555555555555555, errors.CLIError),
239 241
                (None, TypeError), (False, TypeError), ([1, 2, 3], TypeError)):
240 242
            try:
241 243
                ia.value = v
b/kamaki/cli/commands/snf-astakos.py
43 43
    _command_init, errors, _optional_json, addLogSettings)
44 44
from kamaki.cli.command_tree import CommandTree
45 45
from kamaki.cli.utils import print_dict, format_size
46
from kamaki.cli.argument import FlagArgument, ValueArgument
46
from kamaki.cli.argument import FlagArgument, ValueArgument, IntArgument
47 47
from kamaki.cli.argument import CommaSeparatedListArgument
48 48
from kamaki.cli.logger import get_logger
49 49

  
......
655 655
    """List all applications (old and new)"""
656 656

  
657 657
    arguments = dict(
658
        project=ValueArgument('Filter by project id', '--with-project-id')
658
        project=IntArgument('Filter by project id', '--with-project-id')
659 659
    )
660 660

  
661 661
    @errors.generic.all
......
732 732
    """List all memberships"""
733 733

  
734 734
    arguments = dict(
735
        project=ValueArgument('Filter by project id', '--with-project-id')
735
        project=IntArgument('Filter by project id', '--with-project-id')
736 736
    )
737 737

  
738 738
    @errors.generic.all
739 739
    @astakoserror
740 740
    def _run(self):
741
        project = self['project']
742
        if project is not None:
743
            project = int(project)
744
        self._print(self.client.get_memberships(self.token, project))
741
        self._print(self.client.get_memberships(self.token, self['project']))
745 742

  
746 743
    def main(self):
747 744
        super(self.__class__, self)._run()

Also available in: Unified diff