Maintenance: refactor servers updater code

- Require at least 80% of number of servers now to pass
- Each provider is in its own package with a common structure
- Unzip package with unzipper interface
- Openvpn package with extraction and download functions
This commit is contained in:
Quentin McGaw
2021-05-08 00:59:42 +00:00
parent 442340dcf2
commit e8e7b83297
107 changed files with 3778 additions and 2374 deletions

View File

@@ -0,0 +1,32 @@
package mullvad
import (
"net"
"strings"
"testing"
"github.com/qdm12/gluetun/internal/models"
"github.com/stretchr/testify/assert"
)
func Test_Stringify(t *testing.T) {
servers := []models.MullvadServer{{
Country: "webland",
City: "webcity",
ISP: "not nsa",
Owned: true,
IPs: []net.IP{{1, 1, 1, 1}},
IPsV6: []net.IP{{1, 1, 1, 1}},
}}
//nolint:lll
expected := `
func MullvadServers() []models.MullvadServer {
return []models.MullvadServer{
{Country: "webland", City: "webcity", ISP: "not nsa", Owned: true, IPs: []net.IP{{1, 1, 1, 1}}, IPsV6: []net.IP{{1, 1, 1, 1}}},
}
}
`
expected = strings.TrimPrefix(strings.TrimSuffix(expected, "\n"), "\n")
s := Stringify(servers)
assert.Equal(t, expected, s)
}