Patchwork [bitbake-devel] bb.tests.fetch: Opt-in for unittests that require network

login
register
mail settings
Submitter Olof Johansson
Date March 25, 2013, 7:32 p.m.
Message ID <1364239962-11399-1-git-send-email-olof.johansson@axis.com>
Download mbox | patch
Permalink /patch/46881/
State New
Headers show

Comments

Olof Johansson - March 25, 2013, 7:32 p.m.
With this change, you have to opt-in to run unit tests that require an internet
connection. To opt-in, you'll set the environment variable BB_NETTESTS to 'yes'.

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
---
 lib/bb/tests/fetch.py |   14 ++++++++++++++
 1 file changed, 14 insertions(+)
Richard Purdie - March 25, 2013, 9:09 p.m.
On Mon, 2013-03-25 at 20:32 +0100, Olof Johansson wrote:
> With this change, you have to opt-in to run unit tests that require an internet
> connection. To opt-in, you'll set the environment variable BB_NETTESTS to 'yes'.

Can we do this the other way please and let people opt-out? I'd rather
people make a conscious decision to opt-out than in.

Cheers,

Richard

> Signed-off-by: Olof Johansson <olof.johansson@axis.com>
> ---
>  lib/bb/tests/fetch.py |   14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py
> index 778d94f..d51aace 100644
> --- a/lib/bb/tests/fetch.py
> +++ b/lib/bb/tests/fetch.py
> @@ -308,6 +308,8 @@ class FetcherTest(unittest.TestCase):
>      def tearDown(self):
>          bb.utils.prunedir(self.tempdir)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_fetch(self):
>          fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d)
>          fetcher.download()
> @@ -320,12 +322,16 @@ class FetcherTest(unittest.TestCase):
>          self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9)
>          self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_fetch_mirror(self):
>          self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake")
>          fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
>          fetcher.download()
>          self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_fetch_premirror(self):
>          self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake")
>          fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
> @@ -351,21 +357,29 @@ class FetcherTest(unittest.TestCase):
>          fetcher.download()
>          checkrevision(self, fetcher)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_gitfetch(self):
>          url1 = url2 = "git://git.openembedded.org/bitbake"
>          self.gitfetcher(url1, url2)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_gitfetch_premirror(self):
>          url1 = "git://git.openembedded.org/bitbake"
>          url2 = "git://someserver.org/bitbake"
>          self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
>          self.gitfetcher(url1, url2)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_gitfetch_premirror2(self):
>          url1 = url2 = "git://someserver.org/bitbake"
>          self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
>          self.gitfetcher(url1, url2)
>  
> +    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
> +                         "Set BB_NETTESTS to yes to run network tests")
>      def test_gitfetch_premirror3(self):
>          realurl = "git://git.openembedded.org/bitbake"
>          dummyurl = "git://someserver.org/bitbake"
Olof Johansson - March 26, 2013, 8:12 a.m.
On 2013-03-25 22:09, Richard Purdie wrote:
> On Mon, 2013-03-25 at 20:32 +0100, Olof Johansson wrote:
> > With this change, you have to opt-in to run unit tests that require an internet
> > connection. To opt-in, you'll set the environment variable BB_NETTESTS to 'yes'.
> 
> Can we do this the other way please and let people opt-out? I'd rather
> people make a conscious decision to opt-out than in.

Sure! I'm just used to unit tests not having (or having very
limited) side effects by default. But it's easy to change, so
I'll do it right away. Thanks for the feedback.

/Olof Johansson

Patch

diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py
index 778d94f..d51aace 100644
--- a/lib/bb/tests/fetch.py
+++ b/lib/bb/tests/fetch.py
@@ -308,6 +308,8 @@  class FetcherTest(unittest.TestCase):
     def tearDown(self):
         bb.utils.prunedir(self.tempdir)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_fetch(self):
         fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d)
         fetcher.download()
@@ -320,12 +322,16 @@  class FetcherTest(unittest.TestCase):
         self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9)
         self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_fetch_mirror(self):
         self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake")
         fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
         fetcher.download()
         self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_fetch_premirror(self):
         self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake")
         fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
@@ -351,21 +357,29 @@  class FetcherTest(unittest.TestCase):
         fetcher.download()
         checkrevision(self, fetcher)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_gitfetch(self):
         url1 = url2 = "git://git.openembedded.org/bitbake"
         self.gitfetcher(url1, url2)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_gitfetch_premirror(self):
         url1 = "git://git.openembedded.org/bitbake"
         url2 = "git://someserver.org/bitbake"
         self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
         self.gitfetcher(url1, url2)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_gitfetch_premirror2(self):
         url1 = url2 = "git://someserver.org/bitbake"
         self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
         self.gitfetcher(url1, url2)
 
+    @unittest.skipUnless(os.environ.get("BB_NETTESTS") == "yes",
+                         "Set BB_NETTESTS to yes to run network tests")
     def test_gitfetch_premirror3(self):
         realurl = "git://git.openembedded.org/bitbake"
         dummyurl = "git://someserver.org/bitbake"