js-hub / lib /download-file.spec.ts
coyotte508's picture
coyotte508 HF Staff
Add 1 files
21dd449 verified
import { expect, test, describe, assert } from "vitest";
import { downloadFile } from "./download-file";
import { deleteRepo } from "./delete-repo";
import { createRepo } from "./create-repo";
import { TEST_ACCESS_TOKEN, TEST_HUB_URL, TEST_USER } from "../test/consts";
import { insecureRandomString } from "../utils/insecureRandomString";
describe("downloadFile", () => {
test("should download regular file", async () => {
const blob = await downloadFile({
repo: {
type: "model",
name: "openai-community/gpt2",
},
path: "README.md",
});
const text = await blob?.slice(0, 1000).text();
assert(
text?.includes(`---
language: en
tags:
- exbert
license: mit
---
# GPT-2
Test the whole generation capabilities here: https://transformer.huggingface.co/doc/gpt2-large`)
);
});
test("should downoad xet file", async () => {
const blob = await downloadFile({
repo: {
type: "model",
name: "celinah/xet-experiments",
},
path: "large_text.txt",
});
const text = await blob?.slice(0, 100).text();
expect(text).toMatch("this is a text file.".repeat(10).slice(0, 100));
});
test("should download private file", async () => {
const repoName = `datasets/${TEST_USER}/TEST-${insecureRandomString()}`;
const result = await createRepo({
accessToken: TEST_ACCESS_TOKEN,
hubUrl: TEST_HUB_URL,
private: true,
repo: repoName,
files: [{ path: ".gitattributes", content: new Blob(["*.html filter=lfs diff=lfs merge=lfs -text"]) }],
});
assert.deepStrictEqual(result, {
repoUrl: `${TEST_HUB_URL}/${repoName}`,
});
try {
const blob = await downloadFile({
repo: repoName,
path: ".gitattributes",
hubUrl: TEST_HUB_URL,
accessToken: TEST_ACCESS_TOKEN,
});
assert(blob, "File should be found");
const text = await blob?.text();
assert.strictEqual(text, "*.html filter=lfs diff=lfs merge=lfs -text");
} finally {
await deleteRepo({
repo: repoName,
hubUrl: TEST_HUB_URL,
accessToken: TEST_ACCESS_TOKEN,
});
}
});
});