Skip to content

Commit df90449

Browse files
committed
Add test for discussion 183
1 parent 3a35072 commit df90449

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed

tests/disc_183_test.go

+105
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/*
2+
3+
Issue Body:
4+
5+
```
6+
Sup guyz! I'm tryna to get a devicelist like that
7+
```
8+
res1, httpRes, err := c.DcimAPI.DcimDevicesList(ctx).Status([]string{"active"}).Limit(10).Execute()
9+
10+
if err != nil {
11+
log.Printf("Error get devices list: %v", err)
12+
}
13+
14+
log.Printf("%v", res1.Results)
15+
log.Printf("Response: %v\n", res1)
16+
log.Printf("HTTP Response: %+v", httpRes)
17+
```
18+
but all i got is
19+
```
20+
2024/09/06 17:13:41 Error get devices list: no value given for required property device_count
21+
2024/09/06 17:13:41 []
22+
2024/09/06 17:13:41 Response: &{0 {<nil> false} {<nil> false} [] map[]}
23+
2024/09/06 17:13:41 HTTP Response: &{Status:200 OK StatusCode:200 Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Allow:[GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS] Connection:[keep-alive] Content-L
24+
anguage:[en] Content-Length:[5577] Content-Type:[application/json] Cross-Origin-Opener-Policy:[same-origin] Date:[Fri, 06 Sep 2024 17:13:41 GMT] Referrer-Policy:[same-origin] Server:[nginx] Vary:[HX-Reque
25+
st, Accept-Language, Cookie, origin] X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN] X-Request-Id:[7fed8b0e-c509-450d-9d5f-23ef54cf2c2b]] Body:{Reader:{"count":3,"next":null,"previous":null,
26+
"results":[{ ___HERE ALL MY DEVICES___ }]}} ContentLength:5577 TransferEncoding:[] Close:false Uncompressed:false Trailer:map[] Request:0xc0001712c0 TLS:<nil>}
27+
```
28+
29+
Why the list is empty? Am i doing something wrong or it's just because of bugs: https://github.com/netbox-community/netbox/issues/16670 https://github.com/netbox-community/go-netbox/issues/165
30+
31+
P.S. I use the latest netbox 4.1.0
32+
````
33+
34+
35+
*/
36+
37+
package main
38+
39+
import (
40+
"context"
41+
"testing"
42+
43+
"github.com/netbox-community/go-netbox/v4"
44+
)
45+
46+
type Seed183Disc struct {
47+
Devices []*netbox.DeviceWithConfigContext
48+
}
49+
50+
func (s *Seed183Disc) Cleanup(t *testing.T, client *netbox.APIClient) {
51+
t.Helper()
52+
53+
for _, device := range s.Devices {
54+
res, err := client.DcimAPI.DcimDevicesDestroy(context.Background(), device.Id).Execute()
55+
if err != nil {
56+
fatalHttp(t, "failed to delete device", err, res)
57+
}
58+
}
59+
}
60+
61+
const disc183DeviceCount = 10
62+
63+
var disc183DeviceDescription = "test-disc-183"
64+
65+
func HSeed183Disc(t *testing.T, client *netbox.APIClient, defaults *Defaults) *Seed183Disc {
66+
t.Helper()
67+
seed := &Seed183Disc{}
68+
69+
for i := 0; i < disc183DeviceCount; i++ {
70+
name := randString(10)
71+
device := netbox.WritableDeviceWithConfigContextRequest{
72+
Name: *netbox.NewNullableString(&name),
73+
Description: &disc183DeviceDescription,
74+
Site: *netbox.NewBriefSiteRequest(defaults.Site.Name, defaults.Site.Slug),
75+
DeviceType: *netbox.NewBriefDeviceTypeRequest(*netbox.NewBriefManufacturerRequest(defaults.Manufacturer.Name, defaults.Manufacturer.Slug), defaults.DeviceType.Model, defaults.DeviceType.Slug),
76+
Role: *netbox.NewBriefDeviceRoleRequest(defaults.DeviceRole.Name, defaults.DeviceRole.Slug),
77+
}
78+
79+
d, res, err := client.DcimAPI.DcimDevicesCreate(context.Background()).WritableDeviceWithConfigContextRequest(device).Execute()
80+
if err != nil {
81+
fatalHttp(t, "failed to create device", err, res)
82+
}
83+
seed.Devices = append(seed.Devices, d)
84+
}
85+
86+
return seed
87+
}
88+
89+
func Test183Disc(t *testing.T) {
90+
harness := GetHarness(t)
91+
defer harness.Cleanup(t)
92+
client := harness.client
93+
94+
seed := HSeed183Disc(t, client, harness.defaults)
95+
harness.AddCleanup(seed)
96+
97+
devicelist, res, err := client.DcimAPI.DcimDevicesList(context.Background()).Description([]string{disc183DeviceDescription}).Execute()
98+
if err != nil {
99+
fatalHttp(t, "failed to get device list", err, res)
100+
}
101+
102+
if len(devicelist.Results) != disc183DeviceCount {
103+
t.Fatalf("expected %d devices, got %d", disc183DeviceCount, len(devicelist.Results))
104+
}
105+
}

0 commit comments

Comments
 (0)