File: 97_ipv6_single.bats

package info (click to toggle)
crowdsec 1.4.6-10.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,500 kB
  • sloc: sh: 2,870; makefile: 386; python: 74
file content (155 lines) | stat: -rw-r--r-- 5,555 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#!/usr/bin/env bats
# vim: ft=bats:list:ts=8:sts=4:sw=4:et:ai:si:

set -u

setup_file() {
    load "../lib/setup_file.sh"
    ./instance-data load
    ./instance-crowdsec start
    API_KEY=$(cscli bouncers add testbouncer -o raw)
    export API_KEY
    CROWDSEC_API_URL="http://localhost:8080"
    export CROWDSEC_API_URL
}

teardown_file() {
    load "../lib/teardown_file.sh"
}

setup() {
    load "../lib/setup.sh"
    if is_db_mysql; then sleep 0.3; fi
}

api() {
    URI="$1"
    curl -s -H "X-Api-Key: ${API_KEY}" "${CROWDSEC_API_URL}${URI}"
}

#----------

@test "cli - first decisions list: must be empty" {
    # delete community pull
    run -0 cscli decisions delete --all
    run -0 cscli decisions list -o json
    assert_output 'null'
}

@test "adding decision for ip 1111:2222:3333:4444:5555:6666:7777:8888" {
    run -0 cscli decisions add -i '1111:2222:3333:4444:5555:6666:7777:8888'
    assert_output --partial 'Decision successfully added'
}

@test "CLI - all decisions" {
    run -0 cscli decisions list -o json
    run -0 jq -r '.[].decisions[0].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "API - all decisions" {
    run -0 api "/v1/decisions"
    run -0 jq -r '.[].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "CLI - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8888" {
    run -0 cscli decisions list -i '1111:2222:3333:4444:5555:6666:7777:8888' -o json
    run -0 jq -r '.[].decisions[0].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "API - decisions for ip 1111:2222:3333:4444:5555:6666:7777:888" {
    run -0 api '/v1/decisions?ip=1111:2222:3333:4444:5555:6666:7777:8888'
    run -0 jq -r '.[].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "CLI - decisions for ip 1211:2222:3333:4444:5555:6666:7777:8888" {
    run -0 cscli decisions list -i '1211:2222:3333:4444:5555:6666:7777:8888' -o json
    assert_output 'null'
}

@test "API - decisions for ip 1211:2222:3333:4444:5555:6666:7777:888" {
    run -0 api '/v1/decisions?ip=1211:2222:3333:4444:5555:6666:7777:8888'
    assert_output 'null'
}

@test "CLI - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8887" {
    run -0 cscli decisions list -i '1111:2222:3333:4444:5555:6666:7777:8887' -o json
    assert_output 'null'
}

@test "API - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8887" {
    run -0 api '/v1/decisions?ip=1111:2222:3333:4444:5555:6666:7777:8887'
    assert_output 'null'
}

@test "CLI - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    run -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/48' -o json
    assert_output 'null'
}

@test "API - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    run -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/48'
    assert_output 'null'
}

@test "CLI - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    run -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/48' --contained -o json
    run -0 jq -r '.[].decisions[0].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "API - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/48" {
    run -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/48&&contains=false'
    run -0 jq -r '.[].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "CLI - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/64" {
    run -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/64' -o json
    assert_output 'null'
}

@test "API - decisions for range 1111:2222:3333:4444:5555:6666:7777:8888/64" {
    run -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/64'
    assert_output 'null'
}

@test "CLI - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/64" {
    run -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/64' -o json --contained
    run -0 jq -r '.[].decisions[0].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "API - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/64" {
    run -0 api '/v1/decisions?range=1111:2222:3333:4444:5555:6666:7777:8888/64&&contains=false'
    run -0 jq -r '.[].value' <(output)
    assert_output '1111:2222:3333:4444:5555:6666:7777:8888'
}

@test "adding decision for ip 1111:2222:3333:4444:5555:6666:7777:8889" {
    run -0 cscli decisions add -i '1111:2222:3333:4444:5555:6666:7777:8889'
    assert_output --partial 'Decision successfully added'
}

@test "deleting decision for ip 1111:2222:3333:4444:5555:6666:7777:8889" {
    run -0 cscli decisions delete -i '1111:2222:3333:4444:5555:6666:7777:8889'
    assert_output --partial '1 decision(s) deleted'
}

@test "CLI - decisions for ip 1111:2222:3333:4444:5555:6666:7777:8889 after delete" {
    run -0 cscli decisions list -i '1111:2222:3333:4444:5555:6666:7777:8889' -o json
    assert_output 'null'
}

@test "deleting decision for range 1111:2222:3333:4444:5555:6666:7777:8888/64" {
    run -0 cscli decisions delete -r '1111:2222:3333:4444:5555:6666:7777:8888/64' --contained
    assert_output --partial '1 decision(s) deleted'
}

@test "CLI - decisions for ip/range in 1111:2222:3333:4444:5555:6666:7777:8888/64 after delete" {
    run -0 cscli decisions list -r '1111:2222:3333:4444:5555:6666:7777:8888/64' -o json --contained
    assert_output 'null'
}