openai/openai-dotnet

Public

mirrored from https://github.com/openai/openai-dotnetAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
OpenAI_2.0.0-beta.7

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

tests/Files/FileTests.cs

99lines · modecode

1using NUnit.Framework;
2using OpenAI.Files;
3using OpenAI.Tests.Utility;
4using System;
5using System.IO;
6using System.Threading.Tasks;
7using static OpenAI.Tests.TestHelpers;
8
9namespace OpenAI.Tests.Files;
10
11[TestFixture(true)]
12[TestFixture(false)]
13public partial class FileTests : SyncAsyncTestBase
14{
15 public FileTests(bool isAsync)
16 : base(isAsync)
17 {
18 }
19
20 [Test]
21 public async Task ListFiles()
22 {
23 FileClient client = GetTestClient();
24
25 OpenAIFileInfoCollection allFiles = IsAsync
26 ? await client.GetFilesAsync()
27 : client.GetFiles();
28 Assert.That(allFiles.Count, Is.GreaterThan(0));
29 Console.WriteLine($"Total files count: {allFiles.Count}");
30
31 OpenAIFileInfoCollection assistantsFiles = IsAsync
32 ? await client.GetFilesAsync(OpenAIFilePurpose.Assistants)
33 : client.GetFiles(OpenAIFilePurpose.Assistants);
34 Assert.That(assistantsFiles.Count, Is.GreaterThan(0).And.LessThan(allFiles.Count));
35 Console.WriteLine($"Assistant files count: {assistantsFiles.Count}");
36 }
37
38 [Test]
39 public async Task UploadAndDelete()
40 {
41 FileClient client = GetTestClient();
42 using Stream file = BinaryData.FromString("Hello! This is a test text file. Please delete me.").ToStream();
43 string filename = "test-file-delete-me.txt";
44
45 OpenAIFileInfo uploadedFile = IsAsync
46 ? await client.UploadFileAsync(file, filename, FileUploadPurpose.Assistants)
47 : client.UploadFile(file, filename, FileUploadPurpose.Assistants);
48 Assert.That(uploadedFile, Is.Not.Null);
49 Assert.That(uploadedFile.Filename, Is.EqualTo(filename));
50 Assert.That(uploadedFile.Purpose, Is.EqualTo(OpenAIFilePurpose.Assistants));
51
52 OpenAIFileInfo fileInfo = IsAsync
53 ? await client.GetFileAsync(uploadedFile.Id)
54 : client.GetFile(uploadedFile.Id);
55 Assert.That(fileInfo.Id, Is.EqualTo(uploadedFile.Id));
56 Assert.That(fileInfo.Filename, Is.EqualTo(uploadedFile.Filename));
57
58 bool deleted = IsAsync
59 ? await client.DeleteFileAsync(uploadedFile.Id)
60 : client.DeleteFile(uploadedFile.Id);
61 Assert.That(deleted, Is.True);
62 }
63
64 [Test]
65 public async Task DownloadContent()
66 {
67 FileClient client = GetTestClient();
68
69 OpenAIFileInfo fileInfo = IsAsync
70 ? await client.GetFileAsync("file-S7roYWamZqfMK9D979HU4q6m")
71 : client.GetFile("file-S7roYWamZqfMK9D979HU4q6m");
72 Assert.That(fileInfo, Is.Not.Null);
73
74 BinaryData downloadedContent = IsAsync
75 ? await client.DownloadFileAsync("file-S7roYWamZqfMK9D979HU4q6m")
76 : client.DownloadFile("file-S7roYWamZqfMK9D979HU4q6m");
77 Assert.That(downloadedContent, Is.Not.Null);
78 }
79
80 [Test]
81 public void SerializeFileCollection()
82 {
83 // TODO: Add this test.
84 }
85
86 [Test]
87 public async Task NonAsciiFilename()
88 {
89 FileClient client = GetTestClient();
90 string filename = "你好.txt";
91 BinaryData fileContent = BinaryData.FromString("世界您好!这是个测试。");
92 OpenAIFileInfo uploadedFile = IsAsync
93 ? await client.UploadFileAsync(fileContent, filename, FileUploadPurpose.Assistants)
94 : client.UploadFile(fileContent, filename, FileUploadPurpose.Assistants);
95 Assert.That(uploadedFile?.Filename, Is.EqualTo(filename));
96 }
97
98 private static FileClient GetTestClient() => GetTestClient<FileClient>(TestScenario.Files);
99}