Project

General

Profile

Download (7.38 KB) Statistics
| Branch: | Tag: | Revision:

hammer-cli-csv / test / resources / activation_keys_test.rb @ d76bdbc0

1
require './test/csv_test_helper'
2
require './lib/hammer_cli_csv'
3

    
4
module Resources
5
  class TestActivationKeys < MiniTest::Unit::TestCase
6
    def test_usage
7
      start_vcr
8
      set_user 'admin'
9

    
10
      stdout,stderr = capture {
11
        hammer.run(%W{--reload-cache csv activation-keys --help})
12
      }
13
      assert_equal '', stderr
14
      assert_equal stdout, <<-HELP
15
Usage:
16
     csv activation-keys [OPTIONS]
17

18
Options:
19
 --continue-on-error           Continue processing even if individual resource error
20
 --export                      Export current data instead of importing
21
 --file FILE_NAME              CSV file (default to /dev/stdout with --export, otherwise required)
22
 --itemized-subscriptions      Export one subscription per row, only process update subscriptions on import
23
 --organization ORGANIZATION   Only process organization matching this name
24
 -h, --help                    print help
25
 -v, --verbose                 be verbose
26
HELP
27
      stop_vcr
28
    end
29

    
30
    def test_create_and_update
31
      start_vcr
32
      set_user 'admin'
33

    
34
      @name = "testakey1"
35

    
36
      file = Tempfile.new('activation_keys_test')
37
      file.write("Name,Organization,Description,Limit,Environment,Content View,Host Collections,Auto-Attach,Service Level,Release Version,Subscriptions\n")
38
      file.write("#{@name},Test Corporation,,,,Default Organization View,"",No,,,\n")
39
      file.rewind
40

    
41
      stdout,stderr = capture {
42
        hammer.run(%W{--reload-cache csv activation-keys --verbose --file #{file.path}})
43
      }
44
      assert_equal '', stderr
45
      assert_equal stdout[0..-2], "Creating activation key '#{@name}'...done"
46

    
47
      file.rewind
48

    
49
      stdout,stderr = capture {
50
        hammer.run(%W{--reload-cache csv activation-keys --verbose --file #{file.path}})
51
      }
52
      assert_equal '', stderr
53
      assert_equal stdout[0..-2], "Updating activation key '#{@name}'...done"
54
      file.unlink
55

    
56
      stdout,stderr = capture {
57
        hammer.run(%W(--reload-cache activation-key list --organization Test\ Corporation --search name=#{@name}))
58
      }
59
      assert_equal '', stderr
60
      assert_equal stdout.split("\n").length, 5
61

    
62
      id = stdout.split("\n")[3].split(" ")[0]
63
      stdout,stderr = capture {
64
        hammer.run(%W(--reload-cache activation-key delete --id #{id}))
65
      }
66

    
67
      stop_vcr
68
    end
69

    
70
    def test_itemized_create_and_update
71
      stdout,stderr = capture {
72
        hammer.run(%W{--reload-cache csv activation-keys --verbose --file test/data/setup/activation-keys.csv})
73
      }
74

    
75
      start_vcr
76
      set_user 'admin'
77

    
78
      name = "ak1"
79
      sub_name = "Red Hat Enterprise Linux Server, Premium (8 sockets) (Unlimited guests)"
80
      quantity = 1
81

    
82
      file = Tempfile.new('activation_keys_test')
83
      file.write("Name,Organization,Description,Limit,Environment,Content View,Host\
84
                  Collections,Auto-Attach,Service Level,Release Version,Subscription\
85
                  Name,Subscription Type,Subscription Quantity,Subscription SKU,Subscription\
86
                  Contract,Subscription Account,Subscription Start,Subscription End\n")
87
      file.write("#{name},Default Organization,,,,Default Organization View,\"\",Yes,,,\"#{sub_name}\",Red\
88
                  Hat,#{quantity},RH0105260,10855292,5535485,2016-01-05T05:00:00+00:00,2017-01-05T04:59:59+00:00")
89

    
90
      file.rewind
91

    
92
      # Attaching an integer quantity of a subscription
93
      stdout,stderr = capture {
94
        hammer.run(%W{--reload-cache csv activation-keys --verbose --itemized-subscriptions --file #{file.path}})
95
      }
96
      assert_equal '', stderr
97
      assert_equal stdout[0..-2], "Updating subscriptions for activation key '#{name}'... attaching #{quantity} of '#{sub_name}'...done"
98

    
99
      file.rewind
100

    
101
      # Attaching already-attached subscription
102
      stdout,stderr = capture {
103
        hammer.run(%W{--reload-cache csv activation-keys --verbose --itemized-subscriptions --file #{file.path}})
104
      }
105
      assert_equal '', stderr
106
      assert_equal stdout[0..-2], "Updating subscriptions for activation key '#{name}'... '#{sub_name}' already attached...done"
107

    
108
      # Attaching automatic quantity with Automatic in quantity field
109
      stdout,stderr = capture {
110
        hammer.run(%W{--reload-cache csv activation-keys --verbose --file test/data/setup/activation-keys.csv})
111
      }
112

    
113
      file.rewind
114

    
115
      file.write("Name,Organization,Description,Limit,Environment,Content View,Host\
116
                  Collections,Auto-Attach,Service Level,Release Version,Subscription\
117
                  Name,Subscription Type,Subscription Quantity,Subscription SKU,Subscription\
118
                  Contract,Subscription Account,Subscription Start,Subscription End\n")
119
      file.write("#{name},Default Organization,,,,Default Organization View,\"\",Yes,,,\"#{sub_name}\",Red\
120
                  Hat,Automatic,RH0105260,10855292,5535485,2016-01-05T05:00:00+00:00,2017-01-05T04:59:59+00:00")
121

    
122
      file.rewind
123

    
124
      stdout,stderr = capture {
125
        hammer.run(%W{--reload-cache csv activation-keys --verbose --itemized-subscriptions --file #{file.path}})
126
      }
127
      assert_equal '', stderr
128
      assert_equal stdout[0..-2], "Updating subscriptions for activation key '#{name}'... attaching -1 of '#{sub_name}'...done"
129

    
130
      # Attaching automatic quantity with nothing in quantity field
131
      stdout,stderr = capture {
132
        hammer.run(%W{--reload-cache csv activation-keys --verbose --file test/data/setup/activation-keys.csv})
133
      }
134

    
135
      file.rewind
136

    
137
      file.write("Name,Organization,Description,Limit,Environment,Content View,Host\
138
                  Collections,Auto-Attach,Service Level,Release Version,Subscription\
139
                  Name,Subscription Type,Subscription Quantity,Subscription SKU,Subscription\
140
                  Contract,Subscription Account,Subscription Start,Subscription End\n")
141
      file.write("#{name},Default Organization,,,,Default Organization View,\"\",Yes,,,\"#{sub_name}\",Red\
142
                  Hat,,RH0105260,10855292,5535485,2016-01-05T05:00:00+00:00,2017-01-05T04:59:59+00:00")
143

    
144
      file.rewind
145

    
146
      stdout,stderr = capture {
147
        hammer.run(%W{--reload-cache csv activation-keys --verbose --itemized-subscriptions --file #{file.path}})
148
      }
149
      assert_equal '', stderr
150
      assert_equal stdout[0..-2], "Updating subscriptions for activation key '#{name}'... attaching -1 of '#{sub_name}'...done"
151

    
152
      # Attaching automatic quantity with "" in quantity field
153
      stdout,stderr = capture {
154
        hammer.run(%W{--reload-cache csv activation-keys --verbose --file test/data/setup/activation-keys.csv})
155
      }
156

    
157
      file.rewind
158

    
159
      file.write("Name,Organization,Description,Limit,Environment,Content View,Host\
160
                  Collections,Auto-Attach,Service Level,Release Version,Subscription\
161
                  Name,Subscription Type,Subscription Quantity,Subscription SKU,Subscription\
162
                  Contract,Subscription Account,Subscription Start,Subscription End\n")
163
      file.write("#{name},Default Organization,,,,Default Organization View,\"\",Yes,,,\"#{sub_name}\",Red\
164
                  Hat,\"\",RH0105260,10855292,5535485,2016-01-05T05:00:00+00:00,2017-01-05T04:59:59+00:00")
165

    
166
      file.rewind
167

    
168
      stdout,stderr = capture {
169
        hammer.run(%W{--reload-cache csv activation-keys --verbose --itemized-subscriptions --file #{file.path}})
170
      }
171
      assert_equal '', stderr
172
      assert_equal stdout[0..-2], "Updating subscriptions for activation key '#{name}'... attaching -1 of '#{sub_name}'...done"
173

    
174
      file.unlink
175

    
176
      stop_vcr
177
    end
178
  end
179
end