go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/packages/rpm_updates_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package packages
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"go.mondoo.com/cnquery/providers/os/connection/mock"
    11  )
    12  
    13  func TestRpmUpdateParser(t *testing.T) {
    14  	mock, err := mock.New("./testdata/updates_rpm.toml", nil)
    15  	if err != nil {
    16  		t.Fatal(err)
    17  	}
    18  	c, err := mock.RunCommand("python")
    19  	if err != nil {
    20  		t.Fatal(err)
    21  	}
    22  	assert.Nil(t, err)
    23  
    24  	m, err := ParseRpmUpdates(c.Stdout)
    25  	assert.Nil(t, err)
    26  	assert.Equal(t, 8, len(m), "detected the right amount of package updates")
    27  
    28  	update := m["python-libs"]
    29  	assert.Equal(t, "python-libs", update.Name, "pkg name detected")
    30  	assert.Equal(t, "", update.Version, "pkg version detected")
    31  	assert.Equal(t, "0:2.7.5-69.el7_5", update.Available, "pkg available version detected")
    32  
    33  	update = m["binutils"]
    34  	assert.Equal(t, "binutils", update.Name, "pkg name detected")
    35  	assert.Equal(t, "", update.Version, "pkg version detected")
    36  	assert.Equal(t, "0:2.27-28.base.el7_5.1", update.Available, "pkg available version detected")
    37  }
    38  
    39  func TestZypperUpdateParser(t *testing.T) {
    40  	mock, err := mock.New("./testdata/updates_zypper.toml", nil)
    41  	if err != nil {
    42  		t.Fatal(err)
    43  	}
    44  	c, err := mock.RunCommand("zypper -n --xmlout list-updates")
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  	assert.Nil(t, err)
    49  
    50  	m, err := ParseZypperUpdates(c.Stdout)
    51  	assert.Nil(t, err)
    52  	assert.Equal(t, 22, len(m), "detected the right amount of package updates")
    53  
    54  	update := m["aaa_base"]
    55  	assert.Equal(t, "aaa_base", update.Name, "pkg name detected")
    56  	assert.Equal(t, "13.2+git20140911.61c1681-28.3.1", update.Version, "pkg version detected")
    57  
    58  	update = m["bash"]
    59  	assert.Equal(t, "bash", update.Name, "pkg name detected")
    60  	assert.Equal(t, "4.3-83.3.1", update.Version, "pkg version detected")
    61  }