Project

General

Profile

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

runcible / test / extensions / errata_test.rb @ master

1
require 'rubygems'
2
require 'minitest/autorun'
3

    
4
require './lib/runcible'
5
require './test/extensions/unit_base'
6
require './test/support/repository_support'
7

    
8
module Extensions
9
  class TestErrata < MiniTest::Unit::TestCase
10
    def self.before_suite
11
      self.support = RepositorySupport.new
12
      @@extension = TestRuncible.server.extensions.errata
13
      self.support.create_and_sync_repo(:importer => true)
14
    end
15

    
16
    def self.after_suite
17
      self.support.destroy_repo
18
    end
19

    
20
    def test_all
21
      response = @@extension.all
22

    
23
      assert_equal 200, response.code
24
      refute_empty response
25
    end
26

    
27
    def test_find
28
      id = @@extension.all.sort_by { |p| p['id'] }.first['id']
29
      response = @@extension.find(id)
30

    
31
      refute_empty response
32
      assert_equal id, response['id']
33
    end
34

    
35
    def test_find_by_unit_id
36
      id = @@extension.all.sort_by { |p| p['id'] }.first['_id']
37
      response = @@extension.find_by_unit_id(id)
38

    
39
      refute_empty response
40
      assert_equal id, response['_id']
41
    end
42

    
43
    def test_find_unknown
44
      response = @@extension.find_all(['f'])
45

    
46
      assert_empty response
47
    end
48

    
49
    def test_find_all_by_unit_ids
50
      id = @@extension.all.sort_by { |p| p['_id'] }.first['_id']
51
      response = @@extension.find_all_by_unit_ids([id])
52

    
53
      refute_empty response
54
      assert_equal id, response.first['_id']
55
    end
56

    
57
    def test_find_all
58
      pkgs = @@extension.all.sort_by { |p| p['id'] }
59
      ids = pkgs[0..2].map { |p| p['id'] }
60
      response = @@extension.find_all(ids)
61

    
62
      assert_equal 200, response.code
63
      assert_equal ids.length, response.length
64
    end
65
  end
66

    
67
  class TestErrataCopy < UnitCopyBase
68
    def self.extension_class
69
      TestRuncible.server.extensions.errata
70
    end
71

    
72
    def test_copy
73
      response = self.class.extension_class.copy(RepositorySupport.repo_id, self.class.clone_name)
74

    
75
      tasks = assert_async_response(response)
76
      assert_includes tasks.first['tags'], 'pulp:action:associate'
77
    end
78
  end
79

    
80
  class TestErrataUnassociate < UnitUnassociateBase
81
    def self.extension_class
82
      TestRuncible.server.extensions.errata
83
    end
84

    
85
    def setup
86
      task = TestRuncible.server.extensions.repository.unit_copy(self.class.clone_name, RepositorySupport.repo_id)
87
      self.class.support.wait_on_response(task)
88
    end
89

    
90
    def test_unassociate_ids_from_repo
91
      ids = content_ids(RepositorySupport.repo_id)
92
      refute_empty ids
93
      response = self.class.extension_class.unassociate_ids_from_repo(self.class.clone_name, [ids.first])
94

    
95
      assert_async_response(response)
96
      assert_equal((ids.length - 1), content_ids(self.class.clone_name).length)
97
    end
98

    
99
    def test_unassociate_unit_ids_from_repo
100
      ids = unit_ids(RepositorySupport.repo_id)
101
      refute_empty ids
102
      response = self.class.extension_class.unassociate_unit_ids_from_repo(self.class.clone_name, [ids.first])
103

    
104
      assert_async_response(response)
105
      assert_equal((ids.length - 1), unit_ids(self.class.clone_name).length)
106
    end
107

    
108
    def test_unassociate_from_repo
109
      ids = unit_ids(RepositorySupport.repo_id)
110
      refute_empty ids
111
      response = self.class.extension_class.unassociate_from_repo(self.class.clone_name,
112
                                                              :association => {'unit_id' => {'$in' => [ids.first]}})
113

    
114
      assert_async_response(response)
115
      assert_equal((ids.length - 1), unit_ids(self.class.clone_name).length)
116
    end
117
  end
118
end