Repository: zmoog/refurbished (language: python)

Issue:
Country ID is missing in error message
The errors message when a product is not available is missing the country ID:

```shell
$  python cli/rfrb be macs
Product 'macs' is not available in the '{country}' store
```

In this case, the right message is:
```text
Product 'macs' is not available in the 'be' store
```


Discussion / hints:

Fix patch:
diff --git a/Makefile b/Makefile
index 4c315f2..b38d981 100644
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,8 @@ lint-flake8:
 	# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
 	flake8 ${sources} --count --exit-zero --max-complexity=10 --max-line-length=${line_length} --statistics
 
+fix-lint: fix-black fix-isort  ## Fix linting
+
 fix-black:
 	@black ${black_options}
 
@@ -26,4 +28,6 @@ fix-isort:
 	@isort ${isort_options}
 
 test:
-	pytest
+	pytest tests
+
+ready: lint test
diff --git a/cli/rfrb b/cli/rfrb
index 157e40d..6be26c9 100755
--- a/cli/rfrb
+++ b/cli/rfrb
@@ -51,7 +51,7 @@ def get_products(
         # the selected procuct is not available on this store
         click.echo(
             f"Product '{product_family}' is "
-            "not available in the {country} store"
+            f"not available in the '{country}' store"
         )
 
 


Test patch:
diff --git a/tests/__init__.py b/tests/__init__.py
index e69de29..5ffe86a 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -0,0 +1,61 @@
+import importlib.machinery
+import importlib.util
+import io
+import pkgutil
+from types import FunctionType, ModuleType
+from unittest import mock
+
+
+def import_module(name: str, source_path: str) -> ModuleType:
+    """Import and return a module from the file system.
+
+    :param name: the name of the module.
+    :param source_path: the file system path where the module is located.
+
+    Used when the module is written in a file without the `.py`
+    extensions (for example, `cli/rfrb` or `bin/rfrb`).
+
+    Thanks to [anthonywritescode](https://www.youtube.com/watch?v=B5bToFdBxdw)
+    for explaining so well how to do it.
+
+    :return: the module loaded from the file system.
+    """
+    # creates a source code loader and load the module spec
+    loader = importlib.machinery.SourceFileLoader(name, source_path)
+    spec = importlib.util.spec_from_loader(loader.name, loader)
+
+    # turns the spec into a module, and "make it alive"
+    mod = importlib.util.module_from_spec(spec)
+    loader.exec_module(mod)
+
+    return mod
+
+
+class ResponseBuilder(object):
+    """
+    Build a function that mocks a response from the `requests` library.
+
+    Used to patch unit tests.
+    """
+
+    def __init__(self, filename, status_code=200):
+        self.filename = filename
+        self.status_code = status_code
+
+    def __call__(self, _) -> FunctionType:
+        return self._build_response()
+
+    def _build_response(self) -> FunctionType:
+        """
+        Build a response object with a subset of the response object
+        from the requests API.
+        """
+        resource = pkgutil.get_data("tests", self.filename)
+        text = io.BytesIO(resource).read().decode("UTF-8")
+
+        mock_response = mock.Mock()
+        mock_response.text = text
+        mock_response.ok = self.status_code == 200
+        mock_response.status_code = self.status_code
+
+        return mock_response
diff --git a/tests/page_not_found.html b/tests/page_not_found.html
new file mode 100644
index 0000000..3f3070b
--- /dev/null
+++ b/tests/page_not_found.html
@@ -0,0 +1,942 @@
+
+<!DOCTYPE html>
+<html class="en-us amr nojs en seg-consumer us" lang="en-US">
+        <head>
+        <meta name="viewport" content="width=1024" />
+    <title>Page Not Found - Apple</title>
+    <meta charset="utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />    
+    <meta name="format-detection" content="telephone=no" />        
+         <meta property="og:type" content="product" />
+        <meta property="og:image" content="https://as-images.apple.com/is/og-default?wid=1200&amp;hei=630&amp;fmt=jpeg&amp;qlt=95&amp;.v=1525370171638" />
+        <meta name="twitter:card" content="summary_large_image" />
+        <meta property="og:locale" content="en_US" />
+        <meta property="og:url" content="https://www.apple.com/shop/404" />
+        <meta property="og:description" content="Page Not Found" />
+        <meta property="og:title" content="Page Not Found" />
+        <meta property="og:site_name" content="Apple" />
+        <meta name="twitter:site" content="@apple" />
+    <meta name="description" content="Page Not Found" />
+        
+      
+      
+      <link rel="canonical" href="https://www.apple.com/shop/404" />
+          <script> document.cookie = "as_sfa=Mnx1c3x1c3x8ZW5fVVN8Y29uc3VtZXJ8aW50ZXJuZXR8MHwwfDE; path=/; domain=apple.com; expires=Sun, 18-Sep-2022 05:01:55 GMT; Secure;"; </script>
+	<script type="application/json" id="metrics">{"config":{"asMetrics":{"dataMule":"v1","graffitiEnabled":false,"enableSendBeacon":["userInteraction"]},"omniture":{"account":["applestoreww"],"trackingServer":"securemetrics.apple.com","linkInternalFilters":["javascript:","store.apple.com","secure.store.apple.com","secure1.store.apple.com","secure2.store.apple.com","epp.apple.com","secure1.epp.apple.com","storeint.apple.com","secure1.storeint.apple.com","www.apple.com","#"],"internalDomains":["wwwucp2.apple.com","secure.store.apple.com","secure1.store.apple.com","epp.apple.com","ucp2-storeint.apple.com","downloads.apple.com","downloads.apple.com","www.apple.com"]},"global":{"cookieDomain":"apple.com"}},"data":{"node":"standard/404","currency":"USD","area":"shop"}}</script>
+    
+    
+        
+
+            <script>
+                     if (/(iPad).*OS ([6-9]|[1-9][0-9]).*AppleWebKit.*Mobile.*Safari/.test(navigator.userAgent)) {
+                       var headNode = document.getElementsByTagName("head")[0];
+var sbNode = document.createElement('meta');
+var url = decodeURI("https://www.apple.com/shop/404");
+var ses = "; " + document.cookie;
+var sesParts = ses.split("; s_vi=");
+ses = sesParts.length == 2 ? sesParts.pop().split(";").shift() : '';
+if (ses !== '') {
+    url += url.indexOf('?') >= 0 ? '&' : '?';
+    url += 'ses=' + encodeURI(ses);
+}
+sbNode.name = 'apple-itunes-app';
+sbNode.content = 'app-id=375380948, app-argument=' + url;
+headNode.appendChild(sbNode);
+
+                     }
+                    else if (/(iPhone|iPod).*OS ([6-9]|[1-9][0-9]).*AppleWebKit.*Mobile.*Safari/.test(navigator.userAgent)) {
+                      var headNode = document.getElementsByTagName("head")[0];
+var sbNode = document.createElement('meta');
+var url = decodeURI("https://www.apple.com/shop/404");
+var ses = "; " + document.cookie;
+var sesParts = ses.split("; s_vi=");
+ses = sesParts.length == 2 ? sesParts.pop().split(";").shift() : '';
+if (ses !== '') {
+    url += url.indexOf('?') >= 0 ? '&' : '?';
+    url += 'ses=' + encodeURI(ses);
+}
+sbNode.name = 'apple-itunes-app';
+sbNode.content = 'app-id=375380948, app-argument=' + url;
+headNode.appendChild(sbNode);
+
+                    }
+            </script>
+
+
+
+    
+
+    
+
+    	<script>
+		window.asUnsupportedBrowserUrl = "https://www.apple.com/shop/unsupported";
+	</script>
+
+
+<script>
+	//replace nojs class with js on html element
+	(function(html){
+		html.className = html.className.replace(/\bnojs\b/,'js')
+	})(document.documentElement);
+</script>
+
+	<link rel="stylesheet" href="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-merch/3/dist/pagenotfound.css" media="screen, print" />
+
+	<link rel="stylesheet" href="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-external/rel/us/external.css" media="" />
+
+	<link rel="stylesheet" href="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-globalelements/dist/us/globalelements.css" media="" />
+
+	<link rel="stylesheet" href="https://www.apple.com/wss/fonts?families=SF+Pro,v3:200,300,400,500,600|SF+Pro+Icons,v3|Apple+Monochrome+Emoji,v3|Apple+Monochrome+Emoji+Ind,v2|Graphik,v1" media="" />
+
+
+	<script>
+		window.irOn=true;
+	</script>
+
+    <script>
+window.ECHO_CONFIG = {
+    metadata: {
+        environment: "",
+        sf: "us",
+        segment: "Consumer",
+        locale: "en-us",
+        referer: document.referrer
+    },
+    config: {
+        "app": "com.apple.www.Store",
+        "delaySendingPageViewDataMS": 500,
+        "nonEssentialEventSampleRatePct": 1.0,
+        "performanceMeasurePollingIntervalMS": 1000,
+        "performanceMeasuresToReport": "".split(','),
+        "resourceDisallowedResourceList": "securemetrics.apple.com".split(','),
+        "resourcePollingIntervalMS": 2000,
+        "sendErrors": true,
+        "sendPageViewData": true,
+        "sendResourceData":  true,
+        "url": "https://xp.apple.com/report/2/xp_aos_clientperf"
+    }
+};
+    </script>
+
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-echo/3/dist/echo-nomodule.min.js" nomodule></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-external/rel/unsupportedBrowser.min.js" nomodule></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-echo/3/dist/echo.min.js" type="module" async></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-external/rel/external.js"></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-vendor/1/dist/react@17.0.1/umd/react.production.min.js"></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-vendor/1/dist/react-dom@17.0.1/umd/react-dom.production.min.js"></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-globalelements/dist/globalelements.js"></script>
+	<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-merch/3/dist/pagenotfound.js"></script>
+
+
+        <script>
+            window.dynamicFootnotesConfig = {
+                dynamicSymbols: ["<sup>±</sup>","<sup>±±</sup>","<sup>†</sup>","<sup>††</sup>","<sup>‡</sup>","<sup>‡‡</sup>","°","°°","<sup>※</sup>","<sup>※※</sup>"],
+                selector: "div.footnotes",
+                footnoteElementType: "p",
+                footnoteElementDataAttr: "data-dynamic-footnote",
+                placeholderRegex: /{footnote\.(.*?)}/g,
+                placeholderIdFindFn: function (str) {
+                    return str.split(".")[1].split("}")[0]
+                },
+                symbolCache: {},
+                nextSymbolIndex: 0
+            };
+        </script>
+
+        <script>
+            window.dynamicHashConfig = {
+                // should match something like '__hash__'
+                placeholderRegex: /__hash__/g,
+            };
+
+            window.dcpConfig = {
+                mzoneUrl: "/shop/personalization",
+                mzoneParamPrefix: "mz",
+                moduleBaseUrl: "/shop/content-module",
+                timeoutMS: 2000,
+                enabled: true,
+                mzoneIdList: [],
+                mzoneMap: {},
+                dataAttr: 'data-mzone',
+                dynamicDataAttr: 'data-mzone-dynamic-content',
+                acStatusConfigGetter: function () {
+                    var acConfig = window.acSetup;
+
+                    if (!acConfig) {
+                        return false;
+                    }
+
+                    return {
+                        merchantIdentifier: acConfig.merchantIdentifier || '',
+                        signature: acConfig.signature || '',
+                        signedFields: acConfig.signedFields || null
+                    };
+                },
+                analytics: {
+                    attributesToAddToModules: [
+                        { key: "role", value: "listitem", type: "string" },
+                        { key: "data-rule-id", value: "ruleId", type: "moduleProperty" },
+                        { key: "data-module-id", value: "moduleId", type: "moduleProperty" }
+                    ],
+                    selectorsToIgnore: [".dcp-module-hook", "style", "script", "noscript"],
+                }
+            };
+        </script>
+
+
+		<script>
+		window.atServerDomain = "securemvt.apple.com";
+		window.astexEndpoint = "https://www.apple.com/shop/experience-meta";
+		window.astexLocalStorageKey = "as_tex";
+		</script>
+			<script src="https://store.storeimages.cdn-apple.com/4982/store.apple.com/shop/rs-external/rel/at.js"></script>
+
+
+
+    
+
+<script>
+		if(!/dssid2/.test(document.cookie) || !/as_dc/.test(document.cookie))
+		{
+			Event.onDomReady(function() {
+				var ie = document.createElement("IMG");
+				ie.src = '/shop/dc';
+				ie.width = ie.height = 1;
+				ie.style.display = "none";
+				ie.alt = "";
+				document.body.appendChild(ie);
+			});
+		}
+</script>
+
+
+    
+
+
+</head>
+
+
+    <body class="site-map">
+        	<script>
+		window.as = window.as || {};
+		window.as.isFlex = true;
+	</script>
+            <div class="metrics">
+            <noscript>
+        <img src="https://securemetrics.apple.com/b/ss/applestoreww/1/H.8--NS/0?pageName=No-Script:AOS%3A+404" height="1" width="1" alt=""/>
+    </noscript>
+
+
+        
+        	<script></script>
+
+
+        
+        
+    <script>
+
+        window.asMetrics.initialize({
+            isHomePage: false
+            ,encryptedStoreId: "wHF2F2PHCCCX72KDY"
+            ,evarDataNodesEnabled: true
+
+
+            ,computedPageName: "AOS: 404"
+            ,serverName: "e18560"
+            ,hier1: "404"
+            ,characterSetForCountry: "UTF-8"
+            ,currencyCode: "USD"
+
+                ,pageType: "errorPage"
+
+            ,computedChannel: "AOS: 404"
+                ,crossSegmentTrackingVariable: "AOS: US Consumer: 404"
+                ,storeSegmentVariable: "AOS: US Consumer"
+
+
+
+                ,storeFrontId: "10078"
+
+
+
+
+            ,searchTerm: ""
+                ,computedCustomStoreName: "AOS: US Consumer"
+
+                ,langAttribute: "en-us"
+
+
+
+
+
+        });
+
+    </script>
+
+
+    </div>
+
+
+
+
+<script>
+		if(!/dssid2/.test(document.cookie) || !/as_dc/.test(document.cookie))
+		{
+			Event.onDomReady(function() {
+				var ie = document.createElement("IMG");
+				ie.src = '/shop/dc';
+				ie.width = ie.height = 1;
+				ie.style.display = "none";
+				ie.alt = "";
+				document.body.appendChild(ie);
+			});
+		}
+</script>
+
+
+
+
+        
+
+        <div id="page">
+
+            <meta name="ac-gn-store-key" content="SJHJUH4YFCTTPD4F4" />
+<meta name="ac-gn-segmentbar-redirect" content="true" />
+
+<aside id="ac-gn-segmentbar" class="ac-gn-segmentbar" lang="en-US" dir="ltr" data-strings="{ 'exit': 'Exit', 'view': '{%STOREFRONT%} Store Home', 'segments': { 'smb': 'Business Store Home', 'eduInd': 'Education Store Home', 'other': 'Store Home' } }"></aside>
+<input type="checkbox" id="ac-gn-menustate" class="ac-gn-menustate" />
+<nav id="ac-globalnav" class="no-js" role="navigation" aria-label="Global" data-hires="false" data-analytics-region="global nav" lang="en-US" dir="ltr" data-www-domain="www.apple.com" data-store-locale="us" data-store-root-path="/us" data-store-api="https://www.apple.com/shop/bag/status" data-search-locale="en_US" data-search-suggestions-api="/search-services/suggestions/" data-search-defaultlinks-api="/search-services/suggestions/defaultlinks/">
+	<div class="ac-gn-content">
+		<ul class="ac-gn-header">
+			<li class="ac-gn-item ac-gn-menuicon">
+				<a href="#ac-gn-menustate" role="button" class="ac-gn-menuanchor ac-gn-menuanchor-open" id="ac-gn-menuanchor-open">
+					<span class="ac-gn-menuanchor-label">Global Nav Open Menu</span>
+				</a>
+				<a href="#" role="button" class="ac-gn-menuanchor ac-gn-menuanchor-close" id="ac-gn-menuanchor-close">
+					<span class="ac-gn-menuanchor-label">Global Nav Close Menu</span>
+				</a>
+				<label class="ac-gn-menuicon-label" for="ac-gn-menustate" aria-hidden="true">
+					<span class="ac-gn-menuicon-bread ac-gn-menuicon-bread-top">
+						<span class="ac-gn-menuicon-bread-crust ac-gn-menuicon-bread-crust-top"></span>
+					</span>
+					<span class="ac-gn-menuicon-bread ac-gn-menuicon-bread-bottom">
+						<span class="ac-gn-menuicon-bread-crust ac-gn-menuicon-bread-crust-bottom"></span>
+					</span>
+				</label>
+			</li>
+			<li class="ac-gn-item ac-gn-apple">
+				<a class="ac-gn-link ac-gn-link-apple " href="https://www.apple.com/" data-analytics-title="apple home" id="ac-gn-firstfocus-small">
+					<span class="ac-gn-link-text">Apple</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-bag ac-gn-bag-small" id="ac-gn-bag-small">
+				<div class="ac-gn-bag-wrapper">
+					<a class="ac-gn-link ac-gn-link-bag " href="/shop/bag" data-analytics-title="bag" data-analytics-click="bag" aria-label="Shopping Bag" data-string-badge="Shopping Bag with item count :">
+						<span class="ac-gn-link-text">Shopping Bag</span>
+					</a>
+					<span class="ac-gn-bag-badge" aria-hidden="true" data-analytics-title="bag" data-analytics-click="bag">
+						<span class="ac-gn-bag-badge-separator"></span>
+						<span class="ac-gn-bag-badge-number"></span>
+						<span class="ac-gn-bag-badge-unit">+</span>
+					</span>
+				</div>
+				<span class="ac-gn-bagview-caret ac-gn-bagview-caret-large"></span>
+			</li>
+		</ul>
+		<div class="ac-gn-search-placeholder-container" role="search">
+			<div class="ac-gn-search ac-gn-search-small">
+				<a id="ac-gn-link-search-small" class="ac-gn-link" href="/us/search" data-analytics-title="search" data-analytics-intrapage-link aria-label="Search apple.com">
+					<div class="ac-gn-search-placeholder-bar">
+						<div class="ac-gn-search-placeholder-input">
+							<div class="ac-gn-search-placeholder-input-text" aria-hidden="true">
+								<div class="ac-gn-link-search ac-gn-search-placeholder-input-icon"></div>
+								<span class="ac-gn-search-placeholder">Search apple.com</span>
+							</div>
+						</div>
+						<div class="ac-gn-searchview-close ac-gn-searchview-close-small ac-gn-search-placeholder-searchview-close">
+							<span class="ac-gn-searchview-close-cancel" aria-hidden="true">Cancel</span>
+						</div>
+					</div>
+				</a>
+			</div>
+		</div>
+		<ul class="ac-gn-list">
+			<li class="ac-gn-item ac-gn-apple">
+				<a class="ac-gn-link ac-gn-link-apple " href="https://www.apple.com/" data-analytics-title="apple home" id="ac-gn-firstfocus">
+					<span class="ac-gn-link-text">Apple</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-store">
+				<a class="ac-gn-link ac-gn-link-store " href="/store" data-analytics-title="store">
+					<span class="ac-gn-link-text">Store</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-mac">
+				<a class="ac-gn-link ac-gn-link-mac " href="https://www.apple.com/mac/" data-analytics-title="mac">
+					<span class="ac-gn-link-text">Mac</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-ipad">
+				<a class="ac-gn-link ac-gn-link-ipad " href="https://www.apple.com/ipad/" data-analytics-title="ipad">
+					<span class="ac-gn-link-text">iPad</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-iphone">
+				<a class="ac-gn-link ac-gn-link-iphone " href="https://www.apple.com/iphone/" data-analytics-title="iphone">
+					<span class="ac-gn-link-text">iPhone</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-watch">
+				<a class="ac-gn-link ac-gn-link-watch " href="https://www.apple.com/watch/" data-analytics-title="watch">
+					<span class="ac-gn-link-text">Watch</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-airpods">
+				<a class="ac-gn-link ac-gn-link-airpods " href="https://www.apple.com/airpods/" data-analytics-title="airpods">
+					<span class="ac-gn-link-text">AirPods</span>
+				</a>
+			</li>
+<li class="ac-gn-item ac-gn-item-menu ac-gn-tvhome">
+				<a class="ac-gn-link ac-gn-link-tvhome " href="https://www.apple.com/tv-home/" data-analytics-title="tv and home">
+					<span class="ac-gn-link-text">TV &amp; Home</span>
+				</a>
+			</li>			<li class="ac-gn-item ac-gn-item-menu ac-gn-onlyonapple">
+				<a class="ac-gn-link ac-gn-link-onlyonapple " href="https://www.apple.com/services/" data-analytics-title="only on apple">
+					<span class="ac-gn-link-text">Only on Apple</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-accessories">
+				<a class="ac-gn-link ac-gn-link-accessories current" href="/shop/accessories/all" data-analytics-title="accessories">
+					<span class="ac-gn-link-text">Accessories</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-support">
+				<a class="ac-gn-link ac-gn-link-support " href="https://www.apple.com/support/" data-analytics-title="support">
+					<span class="ac-gn-link-text">Support</span>
+				</a>
+			</li>
+			<li class="ac-gn-item ac-gn-item-menu ac-gn-search" role="search">
+				<a id="ac-gn-link-search" class="ac-gn-link ac-gn-link-search " href="/search" data-analytics-title="search" data-analytics-intrapage-link aria-label="Search apple.com"></a>
+			</li>
+			<li class="ac-gn-item ac-gn-bag" id="ac-gn-bag">
+				<div class="ac-gn-bag-wrapper">
+					<a class="ac-gn-link ac-gn-link-bag " href="/shop/bag" data-analytics-title="bag" data-analytics-click="bag" aria-label="Shopping Bag" data-string-badge="Shopping Bag with item count : {%BAGITEMCOUNT%}">
+						<span class="ac-gn-link-text">Shopping Bag</span>
+					</a>
+					<span class="ac-gn-bag-badge" aria-hidden="true" data-analytics-title="bag" data-analytics-click="bag">
+						<span class="ac-gn-bag-badge-separator"></span>
+						<span class="ac-gn-bag-badge-number"></span>
+						<span class="ac-gn-bag-badge-unit">+</span>
+					</span>
+				</div>
+				<span class="ac-gn-bagview-caret ac-gn-bagview-caret-large"></span>
+			</li>
+		</ul>
+		<aside id="ac-gn-searchview" class="ac-gn-searchview" role="search" data-analytics-region="search">
+			<div class="ac-gn-searchview-content">
+				<div class="ac-gn-searchview-bar">
+					<div class="ac-gn-searchview-bar-wrapper">
+						<form id="ac-gn-searchform" class="ac-gn-searchform" action="/search" method="get">
+							<div class="ac-gn-searchform-wrapper">
+								<input id="ac-gn-searchform-input" class="ac-gn-searchform-input" type="text" aria-label="Search apple.com" placeholder="Search apple.com" autocorrect="off" autocapitalize="off" autocomplete="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" aria-owns="quicklinks suggestions" />
+								<input id="ac-gn-searchform-src" type="hidden" name="src" value="globalnav" />
+								<button id="ac-gn-searchform-submit" class="ac-gn-searchform-submit" type="submit" disabled aria-label="Submit Search"> </button>
+								<button id="ac-gn-searchform-reset" class="ac-gn-searchform-reset" type="reset" disabled aria-label="Clear Search">
+									<span class="ac-gn-searchform-reset-background"></span>
+								</button>
+							</div>
+						</form>
+						<button id="ac-gn-searchview-close-small" class="ac-gn-searchview-close ac-gn-searchview-close-small" aria-label="Cancel Search">
+							<span class="ac-gn-searchview-close-cancel" aria-hidden="true">
+								Cancel
+							</span>
+						</button>
+					</div>
+				</div>
+				<aside id="ac-gn-searchresults" class="ac-gn-searchresults" data-string-quicklinks="Quick Links" data-string-suggestions="Suggested Searches" data-string-noresults></aside>
+			</div>
+			<button id="ac-gn-searchview-close" class="ac-gn-searchview-close" aria-label="Cancel Search">
+				<span class="ac-gn-searchview-close-wrapper">
+					<span class="ac-gn-searchview-close-left"></span>
+					<span class="ac-gn-searchview-close-right"></span>
+				</span>
+			</button>
+		</aside>
+		<aside class="ac-gn-bagview" data-analytics-region="bag">
+			<div class="ac-gn-bagview-scrim">
+				<span class="ac-gn-bagview-caret ac-gn-bagview-caret-small"></span>
+			</div>
+			<div class="ac-gn-bagview-content" id="ac-gn-bagview-content">
+			</div>
+		</aside>
+	</div>
+</nav>
+<div class="ac-gn-blur"></div>
+<div id="ac-gn-curtain" class="ac-gn-curtain"></div>
+<div id="ac-gn-placeholder" class="ac-nav-placeholder"></div>
+
+
+            
+
+            <div role="main">
+                <div id="root"></div>
+                <div class="as-l-container">
+                    
+
+	<div class="main">
+    <div class="section">
+          <h1 class="section-headline">
+              <span>The page you’re looking for can’t be&nbsp;found.</span>
+          </h1>
+    </div>
+</div>
+
+                    <script>
+    window.pageLevelData = window.pageLevelData || {};
+    window.pageLevelData.searchBoxConfig = {
+        'searchBarPlaceHolder': 'Search apple.com',
+        'searchClearText': 'Clear',
+        'searchURL': '/search',
+    };
+</script>
+<div id="search-wrapper"></div>
+
+
+<div class="noscript">
+    <div class="rf-pnf-search-box large-6 small-12 large-centered">
+        <form method="GET" action="/search" name="form" id="site-search">
+            <div class="form-textbox form-textbox-with-righticon form-textbox-with-lefticon">
+                <input
+                    id="searchbar-searchform-input"
+                    type="text"
+                    class="form-textbox-input rf-pnf-search-input"
+                    aria-invalid="false" autocomplete="off"
+                    name="find"
+                />
+                <span class="form-textbox-label" aria-hidden="true">Search apple.com</span>
+                <div class="form-textbox-lefticon">
+                    <span class="form-icons form-icons-search15"></span>
+                </div>
+                <div class="form-textbox-righticon">
+                    <button id="searchbar-searchform-reset" type="reset" class="form-icons form-icons-reset">
+                    <span class="visuallyhidden">Clear</span>
+                </button>
+                </div>
+            </div>
+        </form>
+     </div>
+</div>
+
+                </div>
+                    
+
+	<div class="section">
+	<div class="cta-sitemap">
+		<a href="https://www.apple.com/sitemap" data-slot-name="main2" data-feature-name="Astro Link" data-display-name="AOS: sitemap" class="more"><span>Or see our site map</span></a>
+	</div>
+</div>
+
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+                    
+            </div>
+
+            <div class="as-footnotes " data-nosnippet>
+    <div class="as-footnotes-content">
+        <div class="as-footnotes-sosumi">
+                
+
+                    
+
+
+
+            <div class="footnotes" role="list" aria-label="footnotes">
+                
+                
+                
+            </div>
+
+                
+        </div>
+    </div>
+</div>
+
+            <footer class="as-globalfooter no-js" id="apple-footer">
+    <div class="as-globalfooter-content">
+
+        <div class="as-globalfooter-breadcrumbs">
+<a href="https://www.apple.com/"    data-feature-name="Breadcrumb" data-display-name="Apple"    
+  class="as-globalfooter-breadcrumbs-home" data-autom="footer">                    <span class="as-globalfooter-breadcrumbs-home-icon"></span>
+                    <span class="as-globalfooter-breadcrumbs-home-label">Apple</span>
+</a>    
+    <div class="as-globalfooter-breadcrumbs-path">
+        <ol class="as-globalfooter-breadcrumbs-list" role="navigation" data-autom="globalFooter" aria-label="Breadcrumbs">
+                    <li class="as-globalfooter-breadcrumbs-item">
+
+                                <span>Page Not Found</span>
+                    </li>
+        </ol>
+    </div>
+</div>
+
+
+        <nav role="navigation" aria-label="More Apple Store Links" class="as-globalfooter-directory with-5-columns">
+                    <div class="as-globalfooter-directory-column">
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-one"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-one" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="Shop and Learn" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">Shop and Learn</span>
+        </label>
+        <a href="#as-globalfooter-state-section-one" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-one</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-one</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/mac/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="Mac"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Mac-footer-link">                    Mac
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/ipad/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="iPad"    
+  class="as-globalfooter-directory-column-section-link" data-autom="iPad-footer-link">                    iPad
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/iphone/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="iPhone"    
+  class="as-globalfooter-directory-column-section-link" data-autom="iPhone-footer-link">                    iPhone
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/watch/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="Apple Watch"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple Watch-footer-link">                    Apple Watch
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/tv/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="TV &amp; Home"    
+  class="as-globalfooter-directory-column-section-link" data-autom="TV & Home-footer-link">                    TV & Home
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/music/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="Music"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Music-footer-link">                    Music
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/itunes/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="iTunes"    
+  class="as-globalfooter-directory-column-section-link" data-autom="iTunes-footer-link">                    iTunes
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/homepod/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="HomePod"    
+  class="as-globalfooter-directory-column-section-link" data-autom="HomePod-footer-link">                    HomePod
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/ipod-touch/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="iPod touch"    
+  class="as-globalfooter-directory-column-section-link" data-autom="iPod touch-footer-link">                    iPod touch
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/apple-card/"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="Apple Card"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple Card-footer-link">                    Apple Card
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/accessories/all"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="Accessories"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Accessories-footer-link">                    Accessories
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/browse/home/giftcards"   data-slot-name="section1" data-feature-name="Footer Navigation" data-display-name="Gift Cards"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Gift Cards-footer-link">                    Gift Cards
+</a>            </li>
+        </ul>
+    </div>
+                    </div>
+                    <div class="as-globalfooter-directory-column">
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-two"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-two" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="Apple Store" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">Apple Store</span>
+        </label>
+        <a href="#as-globalfooter-state-section-two" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-two</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-two</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/retail/"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Find a Store"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Find a Store-footer-link">                    Find a Store
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/store"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Shop Online"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Shop Online-footer-link">                    Shop Online
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/retail/geniusbar/"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Genius Bar"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Genius Bar-footer-link">                    Genius Bar
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/retail/learn/"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Today at Apple"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Today at Apple-footer-link">                    Today at Apple
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/retail/learn/youth/"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Youth Programs"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Youth Programs-footer-link">                    Youth Programs
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://itunes.apple.com/us/app/apple-store/id375380948?mt=8"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Apple Store App"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple Store App-footer-link">                    Apple Store App
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/refurbished"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Refurbished and Clearance"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Refurbished and Clearance-footer-link">                    Refurbished and Clearance
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/browse/finance/PaypalFinancingLandingPage"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Financing"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Financing-footer-link">                    Financing
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/trade-in"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Apple Trade In"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple Trade In-footer-link">                    Apple Trade In
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://secure.store.apple.com/shop/order/list"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Order Status"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Order Status-footer-link">                    Order Status
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/help"   data-slot-name="section2" data-feature-name="Footer Navigation" data-display-name="Shopping Help"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Shopping Help-footer-link">                    Shopping Help
+</a>            </li>
+        </ul>
+    </div>
+                    </div>
+                    <div class="as-globalfooter-directory-column">
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-three-0"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-three-0" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="For Education" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">For Education</span>
+        </label>
+        <a href="#as-globalfooter-state-section-three-0" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-three-0</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-three-0</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/education/"   data-slot-name="section3" data-feature-name="Footer Navigation" data-display-name="Apple and Education"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple and Education-footer-link">                    Apple and Education
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/education-pricing"   data-slot-name="section3" data-feature-name="Footer Navigation" data-display-name="Shop for College"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Shop for College-footer-link">                    Shop for College
+</a>            </li>
+        </ul>
+    </div>
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-three-1"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-three-1" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="For Business" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">For Business</span>
+        </label>
+        <a href="#as-globalfooter-state-section-three-1" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-three-1</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-three-1</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/business/"   data-slot-name="section3" data-feature-name="Footer Navigation" data-display-name="Apple and Business"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple and Business-footer-link">                    Apple and Business
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/retail/business/"   data-slot-name="section3" data-feature-name="Footer Navigation" data-display-name="Shop for Business"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Shop for Business-footer-link">                    Shop for Business
+</a>            </li>
+        </ul>
+    </div>
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-three-2"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-three-2" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="Government" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">Government</span>
+        </label>
+        <a href="#as-globalfooter-state-section-three-2" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-three-2</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-three-2</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/r/store/government"   data-slot-name="section3" data-feature-name="Footer Navigation" data-display-name="Shop for Government"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Shop for Government-footer-link">                    Shop for Government
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="/shop/browse/home/veterans_military"   data-slot-name="section3" data-feature-name="Footer Navigation" data-display-name="Shop for Veterans &amp; Military"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Shop for Veterans & Military-footer-link">                    Shop for Veterans & Military
+</a>            </li>
+        </ul>
+    </div>
+                    </div>
+                    <div class="as-globalfooter-directory-column">
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-four-0"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-four-0" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="For Healthcare" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">For Healthcare</span>
+        </label>
+        <a href="#as-globalfooter-state-section-four-0" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-four-0</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-four-0</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/healthcare/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Apple in Healthcare"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple in Healthcare-footer-link">                    Apple in Healthcare
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/healthcare/apple-watch/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Health on Apple Watch"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Health on Apple Watch-footer-link">                    Health on Apple Watch
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/healthcare/health-records/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Health Records on iPhone"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Health Records on iPhone-footer-link">                    Health Records on iPhone
+</a>            </li>
+        </ul>
+    </div>
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-four-1"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-four-1" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="Apple Values" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">Apple Values</span>
+        </label>
+        <a href="#as-globalfooter-state-section-four-1" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-four-1</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-four-1</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/accessibility/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Accessibility"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Accessibility-footer-link">                    Accessibility
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/education/connectED/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Education"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Education-footer-link">                    Education
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/environment/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Environment"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Environment-footer-link">                    Environment
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/diversity/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Inclusion and Diversity"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Inclusion and Diversity-footer-link">                    Inclusion and Diversity
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/privacy/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Privacy"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Privacy-footer-link">                    Privacy
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/supplier-responsibility/"   data-slot-name="section4" data-feature-name="Footer Navigation" data-display-name="Supplier Responsibility"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Supplier Responsibility-footer-link">                    Supplier Responsibility
+</a>            </li>
+        </ul>
+    </div>
+                    </div>
+                    <div class="as-globalfooter-directory-column">
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-five-0"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-five-0" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="Account" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">Account</span>
+        </label>
+        <a href="#as-globalfooter-state-section-five-0" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-five-0</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-five-0</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://appleid.apple.com"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Manage Your Apple ID"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Manage Your Apple ID-footer-link">                    Manage Your Apple ID
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://secure.store.apple.com/shop/account/home"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Apple Store Account"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple Store Account-footer-link">                    Apple Store Account
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.icloud.com"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="iCloud.com"    
+  class="as-globalfooter-directory-column-section-link" data-autom="iCloud.com-footer-link">                    iCloud.com
+</a>            </li>
+        </ul>
+    </div>
+    <input class="as-globalfooter-directory-column-section-state" type="checkbox" id="as-globalfooter-state-section-five-1"/>
+    <div class="as-globalfooter-directory-column-section">
+        <label class="as-globalfooter-directory-column-section-label" for="as-globalfooter-state-section-five-1" data-asext-evar="eVar6" data-asext-feature="footer" data-asext-part="About Apple" data-asext-action="expand" data-asext-action-toggle="collapse">
+            <span class="as-globalfooter-directory-column-section-title">About Apple</span>
+        </label>
+        <a href="#as-globalfooter-state-section-five-1" class="as-globalfooter-directory-column-section-anchor as-globalfooter-directory-column-section-anchor-open"><span class="as-globalfooter-directory-column-section-anchor-label">Open Menusection-five-1</span></a>
+        <a href="#" class="as-globalfooter-direcotry-column-section-anchor as-globalfooter-directory-column-section-anchor-close"><span class="as-globalfooter-directory-column-section-anchor-label">Close Menusection-five-1</span></a>
+        <ul class="as-globalfooter-directory-column-section-list">
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/newsroom/"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Newsroom"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Newsroom-footer-link">                    Newsroom
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/leadership/"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Apple Leadership"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Apple Leadership-footer-link">                    Apple Leadership
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/jobs/us/"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Job Opportunities"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Job Opportunities-footer-link">                    Job Opportunities
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://investor.apple.com"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Investors"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Investors-footer-link">                    Investors
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/compliance"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Ethics &amp; Compliance"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Ethics & Compliance-footer-link">                    Ethics & Compliance
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/apple-events/"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Events"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Events-footer-link">                    Events
+</a>            </li>
+            <li class="as-globalfooter-directory-column-section-item">
+<a href="https://www.apple.com/contact/"   data-slot-name="section5" data-feature-name="Footer Navigation" data-display-name="Contact Apple"    
+  class="as-globalfooter-directory-column-section-link" data-autom="Contact Apple-footer-link">                    Contact Apple
+</a>            </li>
+        </ul>
+    </div>
+                    </div>
+</nav>
+
+        <div class="as-globalfooter-mini" data-nosnippet>
+    <div class="as-globalfooter-mini-shop">
+                <p>More ways to shop: <span class="nowrap"><a href="https://www.apple.com/retail" data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Find an Apple Store">Find an Apple Store</a></span> or <a href="https://locate.apple.com" data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="other retailer">other retailer</a> near you. Or <span class="nowrap">call <span>1‑800‑MY‑APPLE</span></span>.</p>
+    </div>
+    <div class="as-globalfooter-mini-locale">
+<a href="https://www.apple.com/choose-your-country"   data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Country Selector"    
+  class="as-globalfooter-mini-locale-link" data-autom="footer">                            United States
+</a>    </div>
+    <div class="as-globalfooter-mini-legal">
+                <p class="as-globalfooter-mini-legal-copyright">
+                    Copyright &copy; 2022 Apple Inc.  All rights reserved.
+                </p>
+        <p class="as-globalfooter-mini-legal-links">
+<a href="https://www.apple.com/privacy/privacy-policy"   data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Privacy Policy"    
+  class="as-globalfooter-mini-legal-link" data-autom="footer">Privacy Policy</a><a href="https://apple.com/legal/internet-services/terms/site.html"   data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Terms of Use"    
+  class="as-globalfooter-mini-legal-link" data-autom="footer">Terms of Use</a><a href="/shop/open/salespolicies"   data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Sales and Refunds"    
+  class="as-globalfooter-mini-legal-link" target="new" data-autom="footer">Sales and Refunds</a><a href="https://apple.com/legal"   data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Legal"    
+  class="as-globalfooter-mini-legal-link" data-autom="footer">Legal</a><a href="/shop/browse/sitemap"   data-slot-name="footerConfig" data-feature-name="Footer Navigation" data-display-name="Sitemap"    
+  class="as-globalfooter-mini-legal-link" data-autom="footer">Site Map</a>        </p>
+    </div>
+</div>
+
+
+    </div>
+</footer>
+
+        </div>
+
+        
+
+
+
+
+
+
+ <script>dciddstr = '789e044a15d206312dc9fe4ce78d459b105d2c5d11b421e9c56a8ea8eb2337e7832dd91b36bd6911b86daf3de926906273e3b1ce54946a5c5c622a7ca23152cc0fca31dbe2529873cfa5dcce192483b4db970bf00d7bbe1bae2a8a625dd46f886b0aaa0fe030abab5c3622a4552ff40d84d7252803ed1d7d1218e426c5de0d20bafc9dc987db9e299880bb4b676125b90fe51badd17e31a1137020b304296329c125c3c9d2d7a6649a427464ab52358ee6cb74f1b87f5e3319750b313149a21046e1daad56ee8b3660f4bd1a773697f531652c7fc2820044b6b9bacfacd855e5cc6bffd8686235f38d4ba37e96eff4c09213ed9f74a6973cdf7435c763dde5992d171f04cd964759e985548ead25c75575b9bdc2d41e35c9430e1b99be494b16fb1b2c87d5029a039a14ed888411131c8072fe25c4c92c591a7a31d3e439afe9b296e88f2c5d9d7fa7c71743e4733a4866ae15e3c9c24d07e7fa158b1a933c5c85cbd224960c2310291323616f134f743655deae345be8b043084ba125afd6b8765ffeb3d26cb8512f91035140b4fa03d308d9959c1cd4cd4622c2a5c85da979071002c610a7ef99590c5e4b4f6ecd2e4ae332c6f8219abff3695ced0c5ff320534107e8948b9acf6b2f888b2bd2fe9dbbc9f03343ffd630a44a1be85785a199c890896970a2fdf2ef47e3873bc57dae4538fdd1263637204bf890e293e42b961053030b1a4f7e42eab29b44f3390ce5e2461c9846a1c527f3b768256928e68d03efc364c894b2d2e727ac8bad5f9e67554ac3cfd796efe9fd303ac785e469ea116938ff17fb';</script> 
+
+
+
+
+
+
+        <div id="portal"></div>
+    </body>
+</html>
diff --git a/tests/test_cli.py b/tests/test_cli.py
new file mode 100644
index 0000000..c3a1773
--- /dev/null
+++ b/tests/test_cli.py
@@ -0,0 +1,28 @@
+from unittest.mock import patch
+
+from click.testing import CliRunner
+
+from . import ResponseBuilder, import_module
+
+rfrb = import_module("rfrb", "cli/rfrb")
+
+
+class TestCLI:
+    """
+    Test the Refurbished Command Line Interface (CLI).
+    """
+
+    @patch(
+        "requests.Session.get",
+        side_effect=ResponseBuilder("page_not_found.html", status_code=404),
+    )
+    def test_product_ipad_it(self, _):
+        runner = CliRunner()
+
+        result = runner.invoke(rfrb.get_products, ["be", "macs"])
+
+        assert result.exit_code == 0
+        assert (
+            "Product 'macs' is not available in the 'be' store"
+            in result.output
+        )
diff --git a/tests/test_refurbished.py b/tests/test_refurbished.py
index 0720fee..5b96f87 100644
--- a/tests/test_refurbished.py
+++ b/tests/test_refurbished.py
@@ -1,29 +1,6 @@
-import io
-import pkgutil
-from unittest import mock
 from unittest.mock import patch
 
-
-class ResponseBuilder(object):
-    def __init__(self, response_filename):
-        self.response_filename = response_filename
-
-    def __call__(self, _):
-        return self._build_response()
-
-    def _build_response(self):
-        """
-        Build a response object with a subset of the response object
-        from the requests API.
-        """
-        resource = pkgutil.get_data("tests", self.response_filename)
-        text = io.BytesIO(resource).read().decode("UTF-8")
-
-        mock_response = mock.Mock()
-        mock_response.text = text
-        mock_response.ok = True
-
-        return mock_response
+from . import ResponseBuilder
 
 
 class TestStore: