test_routers_flavors: Skip if requirements are not met

- Require l3-flavors extension and enable it on gate
- Skip on ServiceProfileDriverNotFound

Closes-Bug: #1633339
Change-Id: I53ccc6ec33665160b44d699c96795dc72f1710e6
diff --git a/neutron/tests/tempest/api/admin/test_routers_flavors.py b/neutron/tests/tempest/api/admin/test_routers_flavors.py
index 300c956..4988ba8 100644
--- a/neutron/tests/tempest/api/admin/test_routers_flavors.py
+++ b/neutron/tests/tempest/api/admin/test_routers_flavors.py
@@ -23,6 +23,7 @@
     @classmethod
     @test.requires_ext(extension="router", service="network")
     @test.requires_ext(extension="flavors", service="network")
+    @test.requires_ext(extension="l3-flavors", service="network")
     def skip_checks(cls):
         super(RoutersFlavorTestCase, cls).skip_checks()
 
@@ -34,7 +35,12 @@
         # make a flavor based on legacy router for regular tenant to use
         driver = ('neutron.services.l3_router.service_providers.'
                   'single_node.SingleNodeDriver')
-        sp = cls.admin_client.create_service_profile(driver=driver)
+        try:
+            sp = cls.admin_client.create_service_profile(driver=driver)
+        except lib_exc.NotFound as e:
+            if e.resp_body['type'] == 'ServiceProfileDriverNotFound':
+                raise cls.skipException("%s is not available" % driver)
+            raise
         cls.service_profiles.append(sp['service_profile'])
         cls.flavor = cls.create_flavor(
                 name='special_flavor',
@@ -47,7 +53,12 @@
         # make another with a different driver
         driver = ('neutron.services.l3_router.service_providers.'
                   'dvr.DvrDriver')
-        sp = cls.admin_client.create_service_profile(driver=driver)
+        try:
+            sp = cls.admin_client.create_service_profile(driver=driver)
+        except lib_exc.NotFound as e:
+            if e.resp_body['type'] == 'ServiceProfileDriverNotFound':
+                raise cls.skipException("%s is not available" % driver)
+            raise
         cls.service_profiles.append(sp['service_profile'])
         cls.prem_flavor = cls.create_flavor(
                 name='better_special_flavor',