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"`
}
// 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) {
ctx := context.Background()
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,
APIKey: key,
},
args: args{torrentID: "000001"},
args: args{torrentID: "1"},
want: &domain.TorrentBasic{
Id: "000001",
Id: "1",
InfoHash: "F57AA86DFB03F87FCC7636E310D35918442EAE5C",
Size: "1344512700",
},
wantErr: false,
},
{
name: "get_by_id_2",
name: "get_by_id_not_found",
fields: fields{
Url: ts.URL,
APIUser: user,
@ -89,7 +89,7 @@ func TestPTPClient_GetTorrentByID(t *testing.T) {
},
args: args{torrentID: "100002"},
want: nil,
wantErr: false,
wantErr: true,
},
}
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))
got, err := c.GetTorrentByID(context.Background(), tt.args.torrentID)
if tt.wantErr && assert.Error(t, err) {
assert.Equal(t, tt.wantErr, err)
if tt.wantErr {
assert.Error(t, err)
} else {
assert.NoError(t, err)
}
assert.Equal(t, tt.want, got)

View file

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