diff --git a/openstackclient/tests/compute/v2/fakes.py b/openstackclient/tests/compute/v2/fakes.py
index 948d9e9740..23957738a3 100644
--- a/openstackclient/tests/compute/v2/fakes.py
+++ b/openstackclient/tests/compute/v2/fakes.py
@@ -543,8 +543,8 @@ class FakeFlavor(object):
             'ram': 8192,
             'vcpus': 4,
             'disk': 128,
-            'swap': '',
-            'rxtx_factor': '1.0',
+            'swap': 0,
+            'rxtx_factor': 1.0,
             'OS-FLV-DISABLED:disabled': False,
             'os-flavor-access:is_public': True,
             'OS-FLV-EXT-DATA:ephemeral': 0,
diff --git a/openstackclient/tests/compute/v2/test_flavor.py b/openstackclient/tests/compute/v2/test_flavor.py
index fa29111b34..6d8dc40bd5 100644
--- a/openstackclient/tests/compute/v2/test_flavor.py
+++ b/openstackclient/tests/compute/v2/test_flavor.py
@@ -30,6 +30,166 @@ class TestFlavor(compute_fakes.TestComputev2):
         self.flavors_mock.reset_mock()
 
 
+class TestFlavorCreate(TestFlavor):
+
+    flavor = compute_fakes.FakeFlavor.create_one_flavor(
+        attrs={'links': 'flavor-links'})
+
+    columns = (
+        'OS-FLV-DISABLED:disabled',
+        'OS-FLV-EXT-DATA:ephemeral',
+        'disk',
+        'id',
+        'name',
+        'os-flavor-access:is_public',
+        'ram',
+        'rxtx_factor',
+        'swap',
+        'vcpus',
+    )
+    data = (
+        flavor.disabled,
+        flavor.ephemeral,
+        flavor.disk,
+        flavor.id,
+        flavor.name,
+        flavor.is_public,
+        flavor.ram,
+        flavor.rxtx_factor,
+        flavor.swap,
+        flavor.vcpus,
+    )
+
+    def setUp(self):
+        super(TestFlavorCreate, self).setUp()
+
+        self.flavors_mock.create.return_value = self.flavor
+        self.cmd = flavor.CreateFlavor(self.app, None)
+
+    def test_flavor_create_default_options(self):
+
+        arglist = [
+            self.flavor.name
+        ]
+        verifylist = [
+            ('name', self.flavor.name),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+        default_args = (
+            self.flavor.name,
+            256,
+            1,
+            0,
+            'auto',
+            0,
+            0,
+            1.0,
+            True
+        )
+        columns, data = self.cmd.take_action(parsed_args)
+        self.flavors_mock.create.assert_called_once_with(*default_args)
+
+        self.assertEqual(self.columns, columns)
+        self.assertEqual(self.data, data)
+
+    def test_flavor_create_all_options(self):
+
+        arglist = [
+            self.flavor.name,
+            '--id', self.flavor.id,
+            '--ram', str(self.flavor.ram),
+            '--disk', str(self.flavor.disk),
+            '--ephemeral', str(self.flavor.ephemeral),
+            '--swap', str(self.flavor.swap),
+            '--vcpus', str(self.flavor.vcpus),
+            '--rxtx-factor', str(self.flavor.rxtx_factor),
+            '--public',
+        ]
+        verifylist = [
+            ('name', self.flavor.name),
+            ('id', self.flavor.id),
+            ('ram', self.flavor.ram),
+            ('disk', self.flavor.disk),
+            ('ephemeral', self.flavor.ephemeral),
+            ('swap', self.flavor.swap),
+            ('vcpus', self.flavor.vcpus),
+            ('rxtx_factor', self.flavor.rxtx_factor),
+            ('public', True),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+        args = (
+            self.flavor.name,
+            self.flavor.ram,
+            self.flavor.vcpus,
+            self.flavor.disk,
+            self.flavor.id,
+            self.flavor.ephemeral,
+            self.flavor.swap,
+            self.flavor.rxtx_factor,
+            self.flavor.is_public,
+        )
+        columns, data = self.cmd.take_action(parsed_args)
+        self.flavors_mock.create.assert_called_once_with(*args)
+
+        self.assertEqual(self.columns, columns)
+        self.assertEqual(self.data, data)
+
+    def test_flavor_create_other_options(self):
+
+        self.flavor.is_public = False
+        arglist = [
+            self.flavor.name,
+            '--id', self.flavor.id,
+            '--ram', str(self.flavor.ram),
+            '--disk', str(self.flavor.disk),
+            '--ephemeral', str(self.flavor.ephemeral),
+            '--swap', str(self.flavor.swap),
+            '--vcpus', str(self.flavor.vcpus),
+            '--rxtx-factor', str(self.flavor.rxtx_factor),
+            '--private',
+        ]
+        verifylist = [
+            ('name', self.flavor.name),
+            ('id', self.flavor.id),
+            ('ram', self.flavor.ram),
+            ('disk', self.flavor.disk),
+            ('ephemeral', self.flavor.ephemeral),
+            ('swap', self.flavor.swap),
+            ('vcpus', self.flavor.vcpus),
+            ('rxtx_factor', self.flavor.rxtx_factor),
+            ('public', False),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+        args = (
+            self.flavor.name,
+            self.flavor.ram,
+            self.flavor.vcpus,
+            self.flavor.disk,
+            self.flavor.id,
+            self.flavor.ephemeral,
+            self.flavor.swap,
+            self.flavor.rxtx_factor,
+            self.flavor.is_public,
+        )
+        columns, data = self.cmd.take_action(parsed_args)
+        self.flavors_mock.create.assert_called_once_with(*args)
+
+        self.assertEqual(self.columns, columns)
+        self.assertEqual(self.data, data)
+
+    def test_flavor_create_no_options(self):
+        arglist = []
+        verifylist = None
+        self.assertRaises(tests_utils.ParserException,
+                          self.check_parser,
+                          self.cmd,
+                          arglist,
+                          verifylist)
+
+
 class TestFlavorDelete(TestFlavor):
 
     flavor = compute_fakes.FakeFlavor.create_one_flavor()