blob: 5c002fe788521ac56066ee2c59786881339c969f [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Why Update The VCR Fixtures</title>
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le JavaScript -->
<script src="/assets/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="/assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
<script src="/assets/js/jquery.tweet.js" type="text/javascript"></script>
<script src="/assets/js/application.js" type="text/javascript"></script>
<script src="/assets/js/bootstrap-transition.js"></script>
<script src="/assets/js/bootstrap-alert.js"></script>
<script src="/assets/js/bootstrap-modal.js"></script>
<script src="/assets/js/bootstrap-scrollspy.js"></script>
<script src="/assets/js/bootstrap-tab.js"></script>
<script src="/assets/js/bootstrap-tooltip.js"></script>
<script src="/assets/js/bootstrap-popover.js"></script>
<script src="/assets/js/bootstrap-button.js"></script>
<script src="/assets/js/bootstrap-collapse.js"></script>
<script src="/assets/js/bootstrap-carousel.js"></script>
<script src="/assets/js/bootstrap-typeahead.js"></script>
<!-- Le styles -->
<link href="/assets/css/bootstrap.css" rel="stylesheet">
<link href="/assets/css/application.css" rel="stylesheet">
<link rel="shortcut icon" href="/assets/img/favicon.ico">
</head>
<body><div style="background: red"><h1>2015/07/20 - Apache Deltacloud has been retired. </h1><h2>For more information, please explore the <a href="http://attic.apache.org/">Attic</a>. </h2></div>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/"><img src="/assets/img/logo.png" width="152"
alt="Deltacloud API"/></a>
<ul class="nav top-nav">
<li><a href="/">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/about.html">What is Deltacloud?</a></li>
<li><a href="/drivers.html#drivers">Supported Providers</a></li>
</ul>
</li>
<li><a href="/download.html">Download</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/install-deltacloud.html">Install Deltacloud</a></li>
<li><a href="/run-deltacloud-server.html">Run the Deltacloud Server</a></li>
</ul>
</li>
<li class="dropdown">
<a href="/usage.html" class="dropdown-toggle" data-toggle="dropdown">Usage<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/usage.html#usingapi">Using API</a></li>
<li><a href="/usage.html#clients">Client Libraries</a></li>
<li><a href="/command-tools.html">Command Line Tools</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Contribute<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/getting-sources.html">Getting Sources</a></li>
<li><a href="/how-to-contribute.html">How Can I Contribute?</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">API<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/rest-api.html">Deltacloud REST API</a></li>
<li><a href="/curl-examples.html">Deltacloud API cURL examples</a></li>
<li><a href="/drivers.html">Drivers API</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">CIMI<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/cimi-rest.html">CIMI REST API</a></li>
<li><a href="/cimi-curl.html">CIMI cURL Examples</a></li>
</ul>
</li>
<li><a href="/contact.html">Contact</a></li>
</ul>
</div>
</div>
</div>
<div class="container content">
<p><br></p>
<ul class="breadcrumb">
<li>
<a href="white-box-tests.html">White Box Tests?</a> <span class="divider">/</span>
</li>
<li class="active">Why Update The VCR Fixtures</li>
</ul>
<p>
Deltacloud uses pre-recorded <a href="https://github.com/vcr/vcr">VCR</a> YAML
files called <i>fixtures</i> to allow test execution without the need for a live
cloud provider.
</p>
<p>
The <i>fixtures</i> YAML files are located under:
<u><b>REPO</b>/deltacloud/server/tests/drivers/<i>driver name</i>/fixtures</u>
</p>
<p>
A live cloud provider, with valid credentials, needs to be used in order to
<a href="https://www.relishapp.com/vcr/vcr/v/1-6-0/docs/record-modes">record</a>
the fixtures YAML files but once recorded the tests can then be executed without
a live cloud provider.
</p>
<p>
Because valid credentials are used to record the VCR fixtures data care must be
taken to either alter the credentials on the live cloud provider or remove them
from the fixtures data after doing the recording.
More on how to do this can be found in
<a href="update-vcr-test-fixtures-data-example.html">Updating VCR Fixtures Example</a>
</p>
<h3>Why VCR data May Need Updating:</h3>
<p>
In some cases you will need to re-record the VCR fixtures for particular test.
This happen when a request is made to the backend cloud provider that a
test does not yet exercise. <b>For Example:</b>
</p>
<ul>
<li>
<p>
A bug is fixed in the EC2 driver, where <i>images()</i> method had not work properly.
</p>
<ol>
<li>
<p>Open <i>tests/drivers/ec2/images_tests.rb</i></p>
</li>
<li>
<p>Add a new test to capture this bug.</p>
<p>At the end of this file and add a the new code:</p>
<pre>
it 'should provide correct output' do
# assertions go here
end
</pre>
</li>
</ol>
</li>
<li>
<p>
Scenario: You added new collection <i>oranges()</i> into RHEV-M driver.
</p>
<ol>
<li>
<p>Write all driver methods tests here: <i>tests/drivers/rhevm/oranges_tests.rb</i></p>
</li>
<li>
<p>Create <i>tests/deltacloud/collections/oranges_collection_tests.rb</i></p>
</li>
<li>
<p>Write all collection operations tests here ^^</p>
</li>
</ol>
</li>
<li>
<p>
A bug is fixed in the Deltacloud frontend where <i>/api/images/123/create</i>
operation does not provide correct status code. You corrected it.
</p>
<ol>
<li>
<p>Open 'tests/deltacloud/collections/images_collection_test.rb'</p>
</li>
<li>
<p>Locate this line: </p>
<pre>
it 'allow to create and destroy the new image' do
</pre>
</li>
<li>
<p>Provide the correct value into 'status.must_equal' method</p>
</li>
</ol>
</li>
</ul>
<footer class="footer">
<p class="pull-right"><span class='icon-circle-arrow-up'>&nbsp;</span><a href="#">Back to top</a></p>
<div class='row'>
<div class='span3'>
<img src="/assets/img/asf.png" alt="Apache Software Foundation"/>
</div>
<div class='span9'>
<strong>Apache Deltacloud</strong> is a top-level project at the <a
href="http://www.apache.org">Apache Software Foundation</a>,
having graduated from the ASF Incubator in October
2011. Through a collaborative and meritocratic development process, Apache
projects deliver enterprise-grade, freely available software products that
attract large communities of users.
</div>
</div>
</footer>
</div> <!-- /container -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://stats.salasaga.org/aeolus/piwik/" : "http://stats.salasaga.org/aeolus/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://stats.salasaga.org/aeolus/piwik/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->
</body>
</html>