def _create_cert(self, product_id, label, version, provided_tags):
     cert = stubs.StubProductCertificate(
             stubs.StubProduct(product_id, label, version=version,
                                provided_tags=provided_tags))
     cert.delete = Mock()
     cert.write = Mock()
     return cert
    def test_workstation_skips_desktop(self):

        desktop_cert = self._create_desktop_cert()
        workstation_cert = self._create_workstation_cert()
        self.prod_dir.certs.append(workstation_cert)
        some_other_cert = stubs.StubProductCertificate(
            stubs.StubProduct("8127", "Some Other Product"))
        some_other_cert.delete = Mock()
        some_other_cert.write = Mock()

        self.prod_repo_map = {'71': ["repo2"],
                              '68': ["repo1"],
                              '8127': ["repo3"]}
        self.prod_db_mock.find_repos = Mock(side_effect=self.find_repos_side_effect)

        # Workstation comes first in this scenario:
        enabled = [
                (workstation_cert, 'repo2'),
                (desktop_cert, 'repo1'),
                (some_other_cert, 'repo3'),
        ]

        self.prod_mgr.update_installed(enabled, ['repo1', 'repo2', 'repo3'])

        self.assertFalse(workstation_cert.delete.called)

        self.assertFalse(desktop_cert.write.called)
        self.assertFalse(desktop_cert.delete.called)

        # Testing a bug where desktop cert skipping ended the whole process:
        self.assertTrue(some_other_cert.write.called)
        self.assertFalse(some_other_cert.delete.called)

        self.assertFalse(self.prod_db_mock.delete.called)
Exemple #3
0
    def test_get_releases_no_rhel(self):
        self.prod_dir = stubs.StubProductDirectory(
            [stubs.StubProductCertificate(
                    stubs.StubProduct("rhel-6-something",
                                      provided_tags="rhel-6-something,rhel-6-stub"),)])

        rb = self._get_rb()
        releases = rb.get_releases()
        self.assertEquals([], releases)
    def setUp(self):
        stub_content = stubs.StubContent("c1",
                                         required_tags='rhel-6',
                                         gpg=None,
                                         enabled="1")

        # this content should be ignored since it's not enabled
        stub_content_2 = stubs.StubContent("c2",
                                           required_tags='rhel-6',
                                           gpg=None,
                                           enabled="0")

        # this should be ignored because of required_tag isn't what we
        # are looking for
        stub_content_3 = stubs.StubContent("c3",
                                           required_tags="NotAwesomeOS",
                                           gpg=None,
                                           enabled="1")

        # this should be ignored because of required_tag isn't what we
        # are looking for, and it is not enabled
        stub_content_4 = stubs.StubContent("c4",
                                           required_tags="NotAwesomeOS",
                                           gpg=None,
                                           enabled="0")

        stub_contents = [
            stub_content, stub_content_2, stub_content_3, stub_content_4
        ]

        stub_product = stubs.StubProduct("rhel-6")
        stub_entitlement_certs = [
            stubs.StubEntitlementCertificate(stub_product,
                                             content=stub_contents)
        ]
        stub_entitlement_dir = stubs.StubEntitlementDirectory(
            stub_entitlement_certs)

        stub_product_dir = stubs.StubProductDirectory([
            stubs.StubProductCertificate(
                stubs.StubProduct("rhel-6", provided_tags="rhel-6-stub"), )
        ])

        def get_versions(dummy):
            return versions

        stub_content_connection = stubs.StubContentConnection()
        stub_content_connection.get_versions = get_versions

        self.rb = release.ReleaseBackend(
            ent_dir=stub_entitlement_dir,
            prod_dir=stub_product_dir,
            content_connection=stub_content_connection)
    def _getPrefDialog(self):
        stub_backend = stubs.StubBackend()
        stub_backend.cp_provider.consumer_auth_cp.setConsumer(CONSUMER_DATA)

        stub_backend.product_dir = stubs.StubCertificateDirectory([stubs.StubProductCertificate(stubs.StubProduct("rhel-6"))])
        stub_backend.entitlement_dir = stubs.StubEntitlementDirectory([stubs.StubEntitlementCertificate(stubs.StubProduct("rhel-6"))])

        self.preferences_dialog = preferences.PreferencesDialog(backend=stub_backend,
                                                                parent=None)
        self.preferences_dialog.release_backend.facts = stubs.StubFacts()
        self.preferences_dialog.release_backend.get_releases = get_releases
        self.preferences_dialog.async_updater = stubs.StubAsyncUpdater(self.preferences_dialog)
Exemple #6
0
    def setUp(self):
        fixture.SubManFixture.setUp(self)
        stub_content = stubs.StubContent("c1",
                                         required_tags='rhel-6',
                                         gpg=None,
                                         enabled="1")

        # this content should be ignored since it's not enabled
        stub_content_2 = stubs.StubContent("c2",
                                           required_tags='rhel-6',
                                           gpg=None,
                                           enabled="0")

        # this should be ignored because of required_tag isn't what we
        # are looking for
        stub_content_3 = stubs.StubContent("c3",
                                           required_tags="NotAwesomeOS",
                                           gpg=None,
                                           enabled="1")

        # this should be ignored because of required_tag isn't what we
        # are looking for, and it is not enabled
        stub_content_4 = stubs.StubContent("c4",
                                           required_tags="NotAwesomeOS",
                                           gpg=None,
                                           enabled="0")

        stub_contents = [
            stub_content, stub_content_2, stub_content_3, stub_content_4
        ]

        stub_product = stubs.StubProduct("rhel-6")
        stub_entitlement_certs = [
            stubs.StubEntitlementCertificate(stub_product,
                                             content=stub_contents)
        ]

        # the fixtures ent_dir
        self.ent_dir = stubs.StubEntitlementDirectory(stub_entitlement_certs)

        # fixtures prod_dir
        self.prod_dir = stubs.StubProductDirectory([
            stubs.StubProductCertificate(
                stubs.StubProduct("rhel-6",
                                  provided_tags="rhel-6,rhel-6-stub"), )
        ])

        # FIXME: should just mock this
        # fixture knows to stub this for contentConnection
        self._release_versions = versions
Exemple #7
0
    def test_autobind_load_provided_products(self):
        self.stub_product = stubs.StubProduct("some_random_product")
        self.stub_pool = modelhelpers.create_pool(
            product_id=self.stub_product.getHash(),
            product_name=self.stub_product.getName(),
            provided_products=['rhel-6'])
        self.stub_backend.uep.stub_pool = self.stub_pool

        self.stub_installed_product = stubs.StubProduct("rhel-6")
        self.stub_backend.product_dir = stubs.StubCertificateDirectory(
            [stubs.StubProductCertificate(self.stub_installed_product)])

        autobind_controller = self._get_autobind_controller()
        autobind_controller.load()
        self.assertTrue('Pro' in autobind_controller.suitable_slas)
Exemple #8
0
    def setUp(self):
        self.stub_backend = stubs.StubBackend()
        self.stub_consumer = stubs.StubConsumer()
        self.stub_facts = stubs.StubFacts()

        self.stub_backend.uep.getConsumer = self._getConsumerData

        self.stub_product = stubs.StubProduct("rhel-6")
        self.stub_pool = modelhelpers.create_pool(
            product_id=self.stub_product.getHash(),
            product_name=self.stub_product.getName())
        self.stub_backend.uep.stub_pool = self.stub_pool

        self.stub_backend.product_dir = stubs.StubCertificateDirectory(
            [stubs.StubProductCertificate(self.stub_product)])
        self.stub_backend.entitlement_dir = stubs.StubEntitlementDirectory([])
        self.stub_backend.uep.dryRunBind = self._dryRunBind
    def _getPrefDialog(self):
        stub_backend = stubs.StubBackend()
        stub_backend.uep.getConsumer = getConsumerData
        if self._getConsumerData:
            stub_backend.uep.getConsumer = self._getConsumerData

        self.consumer = StubConsumer()
        if self._getConsumer:
            self.consumer = self._getConsumer()

        stub_backend.product_dir = stubs.StubCertificateDirectory(
            [stubs.StubProductCertificate(stubs.StubProduct("rhel-6"))])
        stub_backend.entitlement_dir = stubs.StubEntitlementDirectory(
            [stubs.StubEntitlementCertificate(stubs.StubProduct("rhel-6"))])

        self.preferences_dialog = preferences.PreferencesDialog(
            backend=stub_backend, consumer=self.consumer, parent=None)
        self.preferences_dialog.release_backend.facts = stubs.StubFacts()
        self.preferences_dialog.release_backend.get_releases = get_releases
Exemple #10
0
    def setUp(self):
        SubManFixture.setUp(self)
        # we have to have a reference to the patchers
        #self.patcher2 = mock.patch.object(entcertlib.EntCertUpdateAction, '_get_consumer_id')
        #self.entcertlib_updateaction_getconsumerid = self.patcher2.start()

        self.patcher3 = mock.patch.object(repolib.RepoUpdateActionCommand,
                                          'perform')
        self.repolib_updateaction_perform = self.patcher3.start()

        self.patcher6 = mock.patch(
            'subscription_manager.managerlib.persist_consumer_cert')
        self.managerlib_persist_consumer_cert = self.patcher6.start()

        # mock out all hardware fetching... we may need to fake socket counts
        self.hwprobe_getall_patcher = mock.patch.object(
            hwprobe.Hardware, 'get_all')
        self.hwprobe_getall_mock = self.hwprobe_getall_patcher.start()
        self.hwprobe_getall_mock.return_value = {}

        self.patcher_entcertlib_writer = mock.patch(
            "subscription_manager.entcertlib.Writer")
        self.entcertlib_writer = self.patcher_entcertlib_writer.start()

        self.patcher_entcertlib_action_syslogreport = mock.patch.object(
            entcertlib.EntCertUpdateAction, 'syslog_results')
        self.update_action_syslog_mock = self.patcher_entcertlib_action_syslogreport.start(
        )

        # some stub certs
        stub_product = stubs.StubProduct('stub_product')
        self.stub_ent1 = stubs.StubEntitlementCertificate(stub_product)
        self.stub_ent2 = stubs.StubEntitlementCertificate(stub_product)
        self.stub_ent_expires_tomorrow = \
            stubs.StubEntitlementCertificate(stub_product,
                                             end_date=datetime.now() + timedelta(days=1))

        self.stub_ent_expires_tomorrow_ent_dir = \
            stubs.StubEntitlementDirectory([self.stub_ent_expires_tomorrow])

        self.local_ent_certs = [self.stub_ent1, self.stub_ent2]
        self.stub_entitled_proddir = \
            stubs.StubProductDirectory([stubs.StubProductCertificate(stub_product)])

        # local entitlement dir
        self.stub_ent_dir = stubs.StubEntitlementDirectory(
            self.local_ent_certs)
        inj.provide(inj.ENT_DIR, self.stub_ent_dir)

        self.mock_uep = mock.Mock()
        self.mock_uep.getCertificateSerials = mock.Mock(
            return_value=[{
                'serial': self.stub_ent1.serial
            }, {
                'serial': self.stub_ent2.serial
            }])
        self.mock_uep.getConsumer = mock.Mock(return_value=CONSUMER_DATA)
        self.set_consumer_auth_cp(self.mock_uep)

        stub_release = {'releaseVer': '6.4'}
        self.mock_uep.getRelease = mock.Mock(return_value=stub_release)

        # we need to mock the consumers uuid with the mocked GoneExceptions
        # uuid
        self._inject_mock_valid_consumer(uuid="234234")

        self.repolib_updateaction_perform.return_value = 0

        # Setup a mock cert sorter to initiate the behaviour we want to test.
        # Must use a non-callable mock for our features dep injection
        # framework.
        self.mock_cert_sorter = mock.NonCallableMock()

        # TODO: need to provide return for "getRelease" for repolib stuff

        injection.provide(injection.CERT_SORTER, self.mock_cert_sorter)
Exemple #11
0
    def setUp(self):
        SubManFixture.setUp(self)
        # we have to have a reference to the patchers
        self.patcher2 = mock.patch.object(certlib.UpdateAction,
                                          '_get_consumer_id')
        self.certlib_updateaction_getconsumerid = self.patcher2.start()

        self.patcher3 = mock.patch.object(repolib.UpdateAction, 'perform')
        self.repolib_updateaction_perform = self.patcher3.start()

        self.patcher4 = mock.patch(
            'subscription_manager.factlib.ConsumerIdentity')
        self.factlib_consumeridentity = self.patcher4.start()

        self.patcher5 = mock.patch(
            'subscription_manager.certlib.ConsumerIdentity')
        self.certlib_consumeridentity = self.patcher5.start()

        self.patcher6 = mock.patch(
            'subscription_manager.managerlib.persist_consumer_cert')
        self.managerlib_persist_consumer_cert = self.patcher6.start()

        self.patcher8 = mock.patch.object(facts.Facts, 'get_last_update')
        self.facts_getlastupdate = self.patcher8.start()

        # mock out all hardware fetching... we may need to fake socket counts
        self.hwprobe_getall_patcher = mock.patch.object(
            hwprobe.Hardware, 'get_all')
        self.hwprobe_getall_mock = self.hwprobe_getall_patcher.start()
        self.hwprobe_getall_mock.return_value = {}

        self.patcher_certlib_writer = mock.patch(
            "subscription_manager.certlib.Writer")
        self.certlib_writer = self.patcher_certlib_writer.start()

        self.patcher_certlib_action_syslogreport = mock.patch.object(
            certlib.UpdateAction, 'syslog_results')
        self.update_action_syslog_mock = self.patcher_certlib_action_syslogreport.start(
        )

        # some stub certs
        stub_product = stubs.StubProduct('stub_product')
        self.stub_ent1 = stubs.StubEntitlementCertificate(stub_product)
        self.stub_ent2 = stubs.StubEntitlementCertificate(stub_product)
        self.stub_ent_expires_tomorrow = \
            stubs.StubEntitlementCertificate(stub_product,
                                             end_date=datetime.now() + timedelta(days=1))

        self.stub_ent_expires_tomorrow_entdir = \
            stubs.StubEntitlementDirectory([self.stub_ent_expires_tomorrow])

        self.local_ent_certs = [self.stub_ent1, self.stub_ent2]
        self.stub_entitled_proddir = \
            stubs.StubProductDirectory([stubs.StubProductCertificate(stub_product)])

        # local entitlement dir
        self.stub_entdir = stubs.StubEntitlementDirectory(self.local_ent_certs)
        inj.provide(inj.ENT_DIR, self.stub_entdir)

        self.mock_uep = mock.Mock()
        self.mock_uep.getCertificateSerials = mock.Mock(
            return_value=[{
                'serial': self.stub_ent1.serial
            }, {
                'serial': self.stub_ent2.serial
            }])
        self.mock_uep.getConsumer = mock.Mock(return_value=CONSUMER_DATA)

        self.certlib_updateaction_getconsumerid.return_value = "234234"

        self.repolib_updateaction_perform.return_value = 0
        self.facts_getlastupdate.return_value = None

        self.factlib_consumeridentity.read.return_value = stubs.StubConsumerIdentity(
            "sdfsdf", "sdfsdf")
        self.certlib_consumeridentity.read.return_value = stubs.StubConsumerIdentity(
            "sdfsdf", "sdfsdf")

        # Setup a mock cert sorter to initiate the behaviour we want to test.
        # Must use a non-callable mock for our features dep injection
        # framework.
        self.mock_cert_sorter = mock.NonCallableMock()

        injection.provide(injection.CERT_SORTER, self.mock_cert_sorter)