Esempio n. 1
0
    def test_durability_file(self):
        """耐久試験:ファイルストレージ アップロード/ダウンロード"""
        b = baas.FileBucket(self.service, "bucket1")

        filename = "test_file.txt"
        text_data = self.create_test_data(1024 * 1024)

        end_time = time.time() + (48 * 60 * 60)

        while end_time >= time.time():
            # upload
            meta = b.create(filename,
                            data=text_data.encode(),
                            content_type="plain/text")
            assert meta["filename"] == filename
            assert meta["length"] == len(text_data)
            assert meta["contentType"] == "plain/text"

            # download
            res = b.download(filename)
            assert res.status_code == 200
            assert res.text == text_data

            # remove
            b.remove(filename)

            # sleep 1sec
            time.sleep(1)

            # update session token
            if self.service.session_token_expire - (60 * 60) < time.time():
                baas.User.login(self.service,
                                username="******",
                                password="******")
Esempio n. 2
0
    def test_upload(self):
        """正常にuploadできること。日本語ファイル名も使用できること。"""
        b = baas.FileBucket(self.service, "bucket1")

        filename = "日本語.txt"

        # upload
        test_data = self.create_test_data(1024)
        meta = b.create(filename,
                        data=test_data.encode(),
                        content_type="plain/text")
        assert meta["filename"] == filename if type(
            meta["filename"]) is str else u"日本語.txt"
        assert meta["length"] == len(test_data)
        assert meta["contentType"] == "plain/text"

        # download
        res = b.download(filename)
        assert res.status_code == 200
        assert res.text == test_data

        # stream download
        with b.download(filename, stream=True) as res:
            assert res.status_code == 200
            data = res.raw.read()
            assert data.decode() == test_data
Esempio n. 3
0
 def upload_file_one(self):
     # type: () -> (baas.FileBucket, str, dict)
     b = baas.FileBucket(self.service, "bucket1")
     test_data = self.create_test_data(64)
     meta = b.create("file1.txt",
                     data=test_data.encode(),
                     content_type="plain/text")
     return b, test_data, meta
    def test_download(self):
        """正常にダウンロードできること"""
        resp = MagicMock()
        service = mock_service_resp(resp)
        bucket = baas.FileBucket(service, "bucket1")

        result = bucket.download("file1")
        assert result == resp

        assert get_rest_args(service) == ("GET", "/files/bucket1/file1")
        assert get_rest_kwargs(service)["stream"] is False
Esempio n. 5
0
    def test_upload_time(self):
        """新規ファイルアップロード時間 (1Mbyte)"""
        b = baas.FileBucket(self.service, "bucket1")
        text_data = self.create_test_data(1024 * 1024)

        start_time = time.time()
        meta = b.create("test_file.txt",
                        data=text_data.encode(),
                        content_type="plain/text")
        elapsed_time = time.time() - start_time

        assert meta["length"] == len(text_data)
        assert elapsed_time < 0.9
        print("query time: " + str(elapsed_time))
Esempio n. 6
0
    def test_file_size(self):
        """ファイルサイズ"""
        b = baas.FileBucket(self.service, "bucket1")

        with open(os.path.expanduser("~/.baas/spec_test_100mb.mp4"),
                  "rb") as f:
            mp4_data = f.read()

        for i in range(8):
            filename = "MovieFile_{}.mp4".format(i)
            b.create(filename, data=mp4_data, content_type="video/mp4")

        file_list = b.query()
        assert len(file_list) == 8
Esempio n. 7
0
    def test_download_time(self):
        """新規ファイルダウンロード時間 (1Mbyte)"""
        b = baas.FileBucket(self.service, "bucket1")
        text_data = self.create_test_data(1024 * 1024)
        b.create("test_file.txt",
                 data=text_data.encode(),
                 content_type="plain/text")

        start_time = time.time()
        res = b.download("test_file.txt")
        elapsed_time = time.time() - start_time

        assert res.status_code == 200
        assert res.text == text_data
        assert elapsed_time < 1.1
        print("query time: " + str(elapsed_time))
Esempio n. 8
0
    def test_file_count(self):
        """ファイル数/メタファイル数"""
        b = baas.FileBucket(self.service, "bucket1")

        text_data = self.create_test_data(1024 * 1024)

        with open(os.path.expanduser("~/.baas/spec_test_1mb.jpg"), "rb") as f:
            img_data = f.read()

        for i in range(500):
            filename = "TextFile_{}.txt".format(i)
            b.create(filename,
                     data=text_data.encode(),
                     content_type="plain/text")

            filename = "ImageFile_{}.jpg".format(i)
            b.create(filename, data=img_data, content_type="image/jpeg")

        file_list = b.query()
        assert len(file_list) == 1000
Esempio n. 9
0
    def test_query(self):
        """正常にクエリできること"""
        b = baas.FileBucket(self.service, "bucket1")

        # 初期状態では 0 件
        files = b.query()
        assert len(files) == 0

        # ファイル登録
        test_data = self.create_test_data(128)
        for i in range(5):
            b.create("file{}.txt".format(i),
                     data=test_data.encode(),
                     content_type="plain/text")
        files = b.query()
        assert len(files) == 5
        for file in files:
            assert re.match(r"^file\d.txt$", file["filename"])
            assert file["length"] == len(test_data)
            assert file["contentType"] == "plain/text"
Esempio n. 10
0
    def test_bucket_count(self):
        """バケット数"""
        self.remove_all_buckets()

        for i in range(1000):
            self.buckets.upsert("bucket" + str(i),
                                content_acl={
                                    "r": ["g:authenticated"],
                                    "w": ["g:authenticated"]
                                })

        text_data = self.create_test_data(1024 * 1024)

        for i in range(1000):
            b = baas.FileBucket(self.service, "bucket" + str(i))
            b.create("TextFile.txt",
                     data=text_data.encode(),
                     content_type="plain/text")

        results = self.buckets.query()
        assert len(results) == 1000
Esempio n. 11
0
print("insert:", obj)

obj["score"] = 95
res = objectBucket.update(obj["_id"], obj, obj["etag"])
print("update:", res)

res = objectBucket.query(where={})
print("query:", res)

res = objectBucket.remove_with_query({})
print("delete:", res)

print()

# file upload/download test
fileBucket = baas.FileBucket(service, "test1")

acl = {"r": ["g:anonymous"], "w": ["g:anonymous"]}

res = fileBucket.create("test.txt",
                        "TESTDATA".encode("utf-8"),
                        "plain/text",
                        acl=acl)
#res = bucket2.update("test.txt", "TESTDATA".encode("utf-8"), "plain/text")
print(res)

res = fileBucket.query()
print(res)

res = fileBucket.download("test.txt")
print(res.text)
Esempio n. 12
0
 def get_bucket(self, expected_result):
     service = mock_service_json_resp(expected_result)
     bucket = baas.FileBucket(service, "bucket1")
     return service, bucket