Example #1
0
 def setUp(self):
     super(TestFileStorage, self).setUp()
     self.tempdir = tempfile.mkdtemp()
     settings = {"storage.dir": self.tempdir}
     kwargs = FileStorage.configure(settings)
     self.request = MagicMock()
     self.storage = FileStorage(self.request, **kwargs)
Example #2
0
 def setUp(self):
     super(TestFileStorage, self).setUp()
     self.tempdir = tempfile.mkdtemp()
     settings = {"storage.dir": self.tempdir}
     kwargs = FileStorage.configure(settings)
     self.request = MagicMock()
     self.storage = FileStorage(self.request, **kwargs)
Example #3
0
 def test_create_package_dir(self):
     """configure() will create the package dir if it doesn't exist"""
     tempdir = tempfile.mkdtemp()
     os.rmdir(tempdir)
     settings = {"storage.dir": tempdir}
     FileStorage.configure(settings)
     try:
         self.assertTrue(os.path.exists(tempdir))
     finally:
         os.rmdir(tempdir)
Example #4
0
 def test_create_package_dir(self):
     """ configure() will create the package dir if it doesn't exist """
     tempdir = tempfile.mkdtemp()
     os.rmdir(tempdir)
     settings = {"storage.dir": tempdir}
     FileStorage.configure(settings)
     try:
         self.assertTrue(os.path.exists(tempdir))
     finally:
         os.rmdir(tempdir)
Example #5
0
 def setUp(self):
     super(TestFileStorage, self).setUp()
     self.tempdir = tempfile.mkdtemp()
     config = MagicMock()
     config.get_settings.return_value = {
         'storage.dir': self.tempdir,
     }
     FileStorage.configure(config)
     self.request = MagicMock()
     self.storage = FileStorage(self.request)
Example #6
0
 def test_create_package_dir(self):
     """ configure() will create the package dir if it doesn't exist """
     tempdir = tempfile.mkdtemp()
     os.rmdir(tempdir)
     config = MagicMock()
     config.get_settings.return_value = {
         'storage.dir': tempdir,
     }
     FileStorage.configure(config)
     try:
         self.assertTrue(os.path.exists(tempdir))
     finally:
         os.rmdir(tempdir)
Example #7
0
class TestFileStorage(unittest.TestCase):

    """ Tests for storing packages as local files """

    def setUp(self):
        super(TestFileStorage, self).setUp()
        self.tempdir = tempfile.mkdtemp()
        settings = {"storage.dir": self.tempdir}
        kwargs = FileStorage.configure(settings)
        self.request = MagicMock()
        self.storage = FileStorage(self.request, **kwargs)

    def tearDown(self):
        super(TestFileStorage, self).tearDown()
        shutil.rmtree(self.tempdir)

    def test_upload(self):
        """ Uploading package saves file """
        package = make_package()
        datastr = "foobar"
        data = StringIO(datastr)
        self.storage.upload(package, data)
        filename = self.storage.get_path(package)
        self.assertTrue(os.path.exists(filename))
        with open(filename, "r") as ifile:
            self.assertEqual(ifile.read(), "foobar")

    def test_list(self):
        """ Can iterate over uploaded packages """
        package = make_package()
        path = self.storage.get_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, "w") as ofile:
            ofile.write("foobar")

        pkg = list(self.storage.list(Package))[0]
        self.assertEquals(pkg.name, package.name)
        self.assertEquals(pkg.version, package.version)
        self.assertEquals(pkg.filename, package.filename)

    def test_delete(self):
        """ delete() should remove package from storage """
        package = make_package()
        path = self.storage.get_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, "w") as ofile:
            ofile.write("foobar")
        self.storage.delete(package)
        self.assertFalse(os.path.exists(path))

    def test_create_package_dir(self):
        """ configure() will create the package dir if it doesn't exist """
        tempdir = tempfile.mkdtemp()
        os.rmdir(tempdir)
        settings = {"storage.dir": tempdir}
        FileStorage.configure(settings)
        try:
            self.assertTrue(os.path.exists(tempdir))
        finally:
            os.rmdir(tempdir)
Example #8
0
class TestFileStorage(unittest.TestCase):
    """Tests for storing packages as local files"""
    def setUp(self):
        super(TestFileStorage, self).setUp()
        self.tempdir = tempfile.mkdtemp()
        settings = {"storage.dir": self.tempdir}
        kwargs = FileStorage.configure(settings)
        self.request = MagicMock()
        self.storage = FileStorage(self.request, **kwargs)

    def tearDown(self):
        super(TestFileStorage, self).tearDown()
        shutil.rmtree(self.tempdir)

    def test_upload(self):
        """Uploading package saves file"""
        package = make_package(requires_python="3.6")
        datastr = b"foobar"
        data = BytesIO(datastr)
        self.storage.upload(package, data)
        filename = self.storage.get_path(package)
        self.assertTrue(os.path.exists(filename))
        with open(filename, "r") as ifile:
            self.assertEqual(ifile.read(), "foobar")
        meta_file = self.storage.get_metadata_path(package)
        self.assertTrue(os.path.exists(meta_file))
        with open(meta_file, "r") as mfile:
            self.assertEqual(json.loads(mfile.read()), package.get_metadata())

    def test_list(self):
        """Can iterate over uploaded packages"""
        package = make_package()
        path = self.storage.get_path(package)
        meta_file = self.storage.get_metadata_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, "w") as ofile:
            ofile.write("foobar")

        with open(meta_file, "w") as mfile:
            mfile.write(json.dumps({"summary": package.summary}))

        pkg = list(self.storage.list(Package))[0]
        self.assertEqual(pkg.name, package.name)
        self.assertEqual(pkg.version, package.version)
        self.assertEqual(pkg.filename, package.filename)
        self.assertEqual(pkg.summary, package.summary)

    def test_delete(self):
        """delete() should remove package from storage"""
        package = make_package()
        path = self.storage.get_path(package)
        meta_path = self.storage.get_metadata_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, "w") as ofile:
            ofile.write("foobar")
        with open(meta_path, "w") as mfile:
            mfile.write("foobar")
        self.storage.delete(package)
        self.assertFalse(os.path.exists(path))
        self.assertFalse(os.path.exists(meta_path))

    def test_create_package_dir(self):
        """configure() will create the package dir if it doesn't exist"""
        tempdir = tempfile.mkdtemp()
        os.rmdir(tempdir)
        settings = {"storage.dir": tempdir}
        FileStorage.configure(settings)
        try:
            self.assertTrue(os.path.exists(tempdir))
        finally:
            os.rmdir(tempdir)

    def test_check_health(self):
        """Base check_health returns True"""
        ok, msg = self.storage.check_health()
        self.assertTrue(ok)
Example #9
0
class TestFileStorage(unittest.TestCase):

    """ Tests for storing packages as local files """

    def setUp(self):
        super(TestFileStorage, self).setUp()
        self.tempdir = tempfile.mkdtemp()
        settings = {
            'storage.dir': self.tempdir,
        }
        kwargs = FileStorage.configure(settings)
        self.request = MagicMock()
        self.storage = FileStorage(self.request, **kwargs)

    def tearDown(self):
        super(TestFileStorage, self).tearDown()
        shutil.rmtree(self.tempdir)

    def test_upload(self):
        """ Uploading package saves file """
        package = make_package()
        datastr = 'foobar'
        data = StringIO(datastr)
        self.storage.upload(package, data)
        filename = self.storage.get_path(package)
        self.assertTrue(os.path.exists(filename))
        with open(filename, 'r') as ifile:
            self.assertEqual(ifile.read(), 'foobar')

    def test_list(self):
        """ Can iterate over uploaded packages """
        package = make_package()
        path = self.storage.get_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, 'w') as ofile:
            ofile.write('foobar')

        pkg = list(self.storage.list(Package))[0]
        self.assertEquals(pkg.name, package.name)
        self.assertEquals(pkg.version, package.version)
        self.assertEquals(pkg.filename, package.filename)

    def test_get_url(self):
        """ Test package url generation """
        package = make_package()
        self.request.app_url.side_effect = lambda *x: '/'.join(x)
        url, _ = self.storage.get_url(package)
        expected = 'api/package/%s/%s' % (package.name, package.filename)
        self.assertEqual(url, expected)

    def test_delete(self):
        """ delete() should remove package from storage """
        package = make_package()
        path = self.storage.get_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, 'w') as ofile:
            ofile.write('foobar')
        self.storage.delete(package)
        self.assertFalse(os.path.exists(path))

    def test_create_package_dir(self):
        """ configure() will create the package dir if it doesn't exist """
        tempdir = tempfile.mkdtemp()
        os.rmdir(tempdir)
        settings = {
            'storage.dir': tempdir,
        }
        FileStorage.configure(settings)
        try:
            self.assertTrue(os.path.exists(tempdir))
        finally:
            os.rmdir(tempdir)
Example #10
0
class TestFileStorage(unittest.TestCase):

    """ Tests for storing packages as local files """

    def setUp(self):
        super(TestFileStorage, self).setUp()
        self.tempdir = tempfile.mkdtemp()
        config = MagicMock()
        config.get_settings.return_value = {
            'storage.dir': self.tempdir,
        }
        FileStorage.configure(config)
        self.request = MagicMock()
        self.storage = FileStorage(self.request)

    def tearDown(self):
        super(TestFileStorage, self).tearDown()
        shutil.rmtree(self.tempdir)

    def test_upload(self):
        """ Uploading package saves file """
        name, version, path = 'a', '1', 'my/path.tar.gz'
        datastr = 'foobar'
        data = StringIO(datastr)
        path = self.storage.upload(name, version, path, data)
        filename = os.path.join(self.tempdir, 'a', '1', 'path.tar.gz')
        self.assertTrue(os.path.exists(filename))
        with open(filename, 'r') as ifile:
            self.assertEqual(ifile.read(), 'foobar')

    def test_list(self):
        """ Can iterate over uploaded packages """
        name, version, shortpath = 'a', '1', 'path.tar.gz'
        path = os.path.join(name, version, shortpath)
        filename = os.path.join(self.tempdir, path)
        os.makedirs(os.path.dirname(filename))
        with open(filename, 'w') as ofile:
            ofile.write('foobar')

        package = list(self.storage.list(Package))[0]
        self.assertEquals(package.name, name)
        self.assertEquals(package.version, version)
        self.assertEquals(package.path, path)

    def test_get_url(self):
        """ Test package url generation """
        package = make_package()
        self.request.app_url.side_effect = lambda *x: '/'.join(x)
        url = self.storage.get_url(package)
        expected = 'api/package/%s/%s/download/%s' % (package.name,
                                                      package.version,
                                                      package.filename)
        self.assertEqual(url, expected)

    def test_delete(self):
        """ delete() should remove package from storage """
        name, version, shortpath = 'a', '1', 'path.tar.gz'
        path = os.path.join(name, version, shortpath)
        filename = os.path.join(self.tempdir, path)
        os.makedirs(os.path.dirname(filename))
        with open(filename, 'w') as ofile:
            ofile.write('foobar')
        self.storage.delete(path)
        self.assertFalse(os.path.exists(filename))

    def test_create_package_dir(self):
        """ configure() will create the package dir if it doesn't exist """
        tempdir = tempfile.mkdtemp()
        os.rmdir(tempdir)
        config = MagicMock()
        config.get_settings.return_value = {
            'storage.dir': tempdir,
        }
        FileStorage.configure(config)
        try:
            self.assertTrue(os.path.exists(tempdir))
        finally:
            os.rmdir(tempdir)
Example #11
0
class TestFileStorage(unittest.TestCase):
    """ Tests for storing packages as local files """
    def setUp(self):
        super(TestFileStorage, self).setUp()
        self.tempdir = tempfile.mkdtemp()
        settings = {
            'storage.dir': self.tempdir,
        }
        kwargs = FileStorage.configure(settings)
        self.request = MagicMock()
        self.storage = FileStorage(self.request, **kwargs)

    def tearDown(self):
        super(TestFileStorage, self).tearDown()
        shutil.rmtree(self.tempdir)

    def test_upload(self):
        """ Uploading package saves file """
        package = make_package()
        datastr = 'foobar'
        data = StringIO(datastr)
        self.storage.upload(package, data)
        filename = self.storage.get_path(package)
        self.assertTrue(os.path.exists(filename))
        with open(filename, 'r') as ifile:
            self.assertEqual(ifile.read(), 'foobar')
        meta_file = self.storage.get_metadata_path(package)
        self.assertTrue(os.path.exists(meta_file))
        with open(meta_file, 'r') as mfile:
            self.assertEqual(json.loads(mfile.read()),
                             {'summary': package.summary})

    def test_list(self):
        """ Can iterate over uploaded packages """
        package = make_package()
        path = self.storage.get_path(package)
        meta_file = self.storage.get_metadata_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, 'w') as ofile:
            ofile.write('foobar')

        with open(meta_file, 'w') as mfile:
            mfile.write(json.dumps({'summary': package.summary}))

        pkg = list(self.storage.list(Package))[0]
        self.assertEquals(pkg.name, package.name)
        self.assertEquals(pkg.version, package.version)
        self.assertEquals(pkg.filename, package.filename)
        self.assertEquals(pkg.summary, package.summary)

    def test_delete(self):
        """ delete() should remove package from storage """
        package = make_package()
        path = self.storage.get_path(package)
        meta_path = self.storage.get_metadata_path(package)
        os.makedirs(os.path.dirname(path))
        with open(path, 'w') as ofile:
            ofile.write('foobar')
        with open(meta_path, 'w') as mfile:
            mfile.write('foobar')
        self.storage.delete(package)
        self.assertFalse(os.path.exists(path))
        self.assertFalse(os.path.exists(meta_path))

    def test_create_package_dir(self):
        """ configure() will create the package dir if it doesn't exist """
        tempdir = tempfile.mkdtemp()
        os.rmdir(tempdir)
        settings = {
            'storage.dir': tempdir,
        }
        FileStorage.configure(settings)
        try:
            self.assertTrue(os.path.exists(tempdir))
        finally:
            os.rmdir(tempdir)