fix(indexers): PTP API test function (#1771)

* fix(indexer): ptp api test

* fix: wrong type

* Revert "fix: wrong type"

This reverts commit 282d7c0c007b41b7323c58b3b450ffbf98c56917.
This commit is contained in:
soup 2024-10-19 14:43:11 +02:00 committed by GitHub
parent f7e635d5ae
commit 636129f282
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 36 additions and 7 deletions

View file

@ -104,6 +104,33 @@ type Torrent struct {
RemasterYear *string `json:"RemasterYear,omitempty"` RemasterYear *string `json:"RemasterYear,omitempty"`
} }
// custom unmarshal method for Torrent
func (t *Torrent) UnmarshalJSON(data []byte) error {
type Alias Torrent
aux := &struct {
Id interface{} `json:"Id"`
*Alias
}{
Alias: (*Alias)(t),
}
if err := json.Unmarshal(data, &aux); err != nil {
return err
}
switch id := aux.Id.(type) {
case float64:
t.Id = fmt.Sprintf("%.0f", id)
case string:
t.Id = id
default:
return fmt.Errorf("unexpected type for Id: %T", aux.Id)
}
return nil
}
func (c *Client) Do(req *http.Request) (*http.Response, error) { func (c *Client) Do(req *http.Request) (*http.Response, error) {
ctx := context.Background() ctx := context.Background()
err := c.rateLimiter.Wait(ctx) // This is a blocking call. Honors the rate limit err := c.rateLimiter.Wait(ctx) // This is a blocking call. Honors the rate limit

View file

@ -72,16 +72,16 @@ func TestPTPClient_GetTorrentByID(t *testing.T) {
APIUser: user, APIUser: user,
APIKey: key, APIKey: key,
}, },
args: args{torrentID: "000001"}, args: args{torrentID: "1"},
want: &domain.TorrentBasic{ want: &domain.TorrentBasic{
Id: "000001", Id: "1",
InfoHash: "F57AA86DFB03F87FCC7636E310D35918442EAE5C", InfoHash: "F57AA86DFB03F87FCC7636E310D35918442EAE5C",
Size: "1344512700", Size: "1344512700",
}, },
wantErr: false, wantErr: false,
}, },
{ {
name: "get_by_id_2", name: "get_by_id_not_found",
fields: fields{ fields: fields{
Url: ts.URL, Url: ts.URL,
APIUser: user, APIUser: user,
@ -89,7 +89,7 @@ func TestPTPClient_GetTorrentByID(t *testing.T) {
}, },
args: args{torrentID: "100002"}, args: args{torrentID: "100002"},
want: nil, want: nil,
wantErr: false, wantErr: true,
}, },
} }
for _, tt := range tests { for _, tt := range tests {
@ -97,8 +97,10 @@ func TestPTPClient_GetTorrentByID(t *testing.T) {
c := NewClient(tt.fields.APIUser, tt.fields.APIKey, WithUrl(ts.URL)) c := NewClient(tt.fields.APIUser, tt.fields.APIKey, WithUrl(ts.URL))
got, err := c.GetTorrentByID(context.Background(), tt.args.torrentID) got, err := c.GetTorrentByID(context.Background(), tt.args.torrentID)
if tt.wantErr && assert.Error(t, err) { if tt.wantErr {
assert.Equal(t, tt.wantErr, err) assert.Error(t, err)
} else {
assert.NoError(t, err)
} }
assert.Equal(t, tt.want, got) assert.Equal(t, tt.want, got)

View file

@ -13,7 +13,7 @@
"ImdbVoteCount": 1859, "ImdbVoteCount": 1859,
"Torrents": [ "Torrents": [
{ {
"Id": "000001", "Id": 1,
"InfoHash": "F57AA86DFB03F87FCC7636E310D35918442EAE5C", "InfoHash": "F57AA86DFB03F87FCC7636E310D35918442EAE5C",
"Quality": "Standard Definition", "Quality": "Standard Definition",
"Source": "DVD", "Source": "DVD",