Пример #1
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)
Пример #2
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)
Пример #3
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)
Пример #4
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)
Пример #5
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)