예제 #1
0
 def setUp(self):
     self.db_dir = tempfile.mkdtemp()
     productid.DatabaseDirectory.PATH = self.db_dir
     self.pm = productid.ProductManager()
     cert1 = stubs.StubEntitlementCertificate(
         stubs.StubProduct('product1'),
         start_date=datetime.datetime(2010, 1, 1),
         end_date=datetime.datetime(2050, 1, 1))
     cert2 = stubs.StubEntitlementCertificate(
         stubs.StubProduct('product2'),
         start_date=datetime.datetime(2010, 1, 1),
         end_date=datetime.datetime(2060, 1, 1))
     self.pm.pdir = stubs.StubProductDirectory([cert1, cert2])
     sys.stdout = stubs.MockStdout()
     self.yb = YumBase()
예제 #2
0
    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)
예제 #4
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
예제 #5
0
    def test_get_releases_rhel_no_content(self):

        stub_content_5 = stubs.StubContent("c5", required_tags="AwesomeOS",
                                           gpg=None, enabled="1")

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

        self.ent_dir = stubs.StubEntitlementDirectory(stub_entitlement_certs)

        rb = self._get_rb()

        releases = rb.get_releases()
        self.assertEquals([], releases)
예제 #6
0
    def test_get_releases_rhel_no_enabled_content(self):

        stub_content_6 = stubs.StubContent("c6",
                                           required_tags="rhel-6",
                                           gpg=None,
                                           enabled="0")

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

        self.ent_dir = stubs.StubEntitlementDirectory(stub_entitlement_certs)

        cdn_rv_provider = self._get_cdn_rv_provider()

        releases = cdn_rv_provider.get_releases()
        self.assertEquals([], releases)
    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
예제 #8
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)
예제 #9
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)
예제 #10
0
 def test_autobind_all_products_covered(self):
     self.stub_backend.entitlement_dir = stubs.StubEntitlementDirectory(
         [stubs.StubEntitlementCertificate(self.stub_product)])
     autobind_controller = self._get_autobind_controller()
     self.assertRaises(autobind.AllProductsCoveredException,
                       autobind_controller.load)