mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
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:
parent
f7e635d5ae
commit
636129f282
3 changed files with 36 additions and 7 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
2
pkg/ptp/testdata/ptp_get_torrent_by_id.json
vendored
2
pkg/ptp/testdata/ptp_get_torrent_by_id.json
vendored
|
@ -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",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue