diff --git a/fixtures/scenario001.pp b/fixtures/scenario001.pp
index 12fa1f573..94aaa8386 100644
--- a/fixtures/scenario001.pp
+++ b/fixtures/scenario001.pp
@@ -402,6 +402,70 @@ class { '::heat::api_cfn':
   workers => '2',
 }
 
+# Deploy Swift
+include ::memcached
+class { '::swift':
+  swift_hash_suffix => 'secrete',
+}
+class { '::swift::proxy':
+  proxy_local_net_ip => '127.0.0.1',
+  workers            => '4',
+  pipeline           => [
+'catch_errors', 'healthcheck', 'cache', 'tempurl', 'ratelimit',
+'authtoken', 'keystone', 'formpost', 'staticweb', 'container_quotas',
+'account_quotas', 'proxy-logging', 'proxy-server'
+  ],
+}
+include ::swift::proxy::catch_errors
+include ::swift::proxy::healthcheck
+include ::swift::proxy::proxy_logging
+include ::swift::proxy::cache
+include ::swift::proxy::tempurl
+include ::swift::proxy::ratelimit
+class { '::swift::proxy::authtoken':
+  auth_uri       => 'http://127.0.0.1:5000/v2.0',
+  identity_uri   => 'http://127.0.0.1:35357/',
+  admin_password => 'a_big_secret',
+}
+class { '::swift::proxy::keystone':
+  operator_roles => ['Member', 'admin', 'SwiftOperator']
+}
+include ::swift::proxy::formpost
+include ::swift::proxy::staticweb
+include ::swift::proxy::container_quotas
+include ::swift::proxy::account_quotas
+include ::swift::proxy::tempauth
+class { '::swift::keystone::auth':
+  password => 'a_big_secret',
+}
+file { '/srv/node':
+  ensure  => directory,
+  owner   => 'swift',
+  group   => 'swift',
+  require => Package['swift'],
+}
+include ::swift::ringbuilder
+class { '::swift::storage::all':
+  storage_local_net_ip => '127.0.0.1',
+  incoming_chmod       => 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r',
+  outgoing_chmod       => 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r',
+}
+$swift_components = ['account', 'container', 'object']
+swift::storage::filter::recon { $swift_components : }
+swift::storage::filter::healthcheck { $swift_components : }
+ring_object_device { '127.0.0.1:6000/1':
+  zone   => 1,
+  weight => 1,
+}
+ring_container_device { '127.0.0.1:6001/1':
+  zone   => 1,
+  weight => 1,
+}
+ring_account_device { '127.0.0.1:6002/1':
+  zone   => 1,
+  weight => 1,
+}
+
 # Configure Tempest and the resources
 $os_auth_options = '--os-username admin --os-password a_big_secret --os-tenant-name openstack --os-auth-url http://127.0.0.1:5000/v2.0'
 
@@ -500,6 +564,7 @@ class { '::tempest':
   ceilometer_available => true,
   sahara_available     => true,
   heat_available       => true,
+  swift_available      => true,
   public_network_name  => 'public',
   flavor_ref           => '42',
   flavor_ref_alt       => '84',
diff --git a/run_tests.sh b/run_tests.sh
index 359df6b04..8520c1199 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -84,5 +84,5 @@ fi
 # TODO(emilien) later, we should use local image if present. That would be a next iteration.
 wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img -P /tmp/openstack/tempest
 
-# run a scenario that validates Keystone, Nova, Glance, Neutron, Ceilometer, Cinder, Sahara and Heat
+# run a scenario that validates Keystone, Nova, Glance, Neutron, Ceilometer, Cinder, Sahara, Swift and Heat
 cd /tmp/openstack/tempest; tox -eall -- --concurrency=2 smoke