def test_scan_for_expired_or_future_products(self): prod_dir = StubProductDirectory(pids=["a", "b", "c", "d", "e"]) ent_dir = StubEntitlementDirectory([ StubEntitlementCertificate(StubProduct("a")), StubEntitlementCertificate(StubProduct("b")), StubEntitlementCertificate(StubProduct("c")), StubEntitlementCertificate(StubProduct("d"), start_date=datetime.now() - timedelta(days=365), end_date=datetime.now() - timedelta(days=2)), StubEntitlementCertificate(StubProduct("e"), start_date=datetime.now() + timedelta(days=365), end_date=datetime.now() + timedelta(days=730)), ]) inj.provide(inj.PROD_DIR, prod_dir) inj.provide(inj.ENT_DIR, ent_dir) sorter = StubCertSorter() sorter.valid_products = {"a": StubProduct("a")} sorter.partially_valid_products = {"b": StubProduct("b")} sorter._scan_entitlement_certs() self.assertEquals(["d"], sorter.expired_products.keys()) self.assertEquals(["e"], sorter.future_products.keys()) self.assertEquals(3, len(sorter.valid_entitlement_certs))
def test_no_entitlement_for_installed_product_shows_no_subscribed(self): product_directory = StubProductDirectory(pids=['product1']) provide(PROD_DIR, product_directory) stub_sorter = StubCertSorter() stub_sorter.unentitled_products['product1'] = None # prod cert unused here provide(CERT_SORTER, stub_sorter) product_status = get_installed_product_status(product_directory, None, StubUEP()) self.assertEquals(1, len(product_status)) self.assertEquals("not_subscribed", product_status[0][4])
def test_future_dated_entitlement_shows_future_subscribed(self): product_directory = StubProductDirectory(pids=['product1']) provide(PROD_DIR, product_directory) ent_cert = StubEntitlementCertificate('product1', start_date=(datetime.now() + timedelta(days=1365))) stub_sorter = StubCertSorter() stub_sorter.future_products['product1'] = [ent_cert] provide(CERT_SORTER, stub_sorter) product_status = get_installed_product_status(product_directory, None, StubUEP()) self.assertEquals(1, len(product_status)) self.assertEquals("future_subscribed", product_status[0][4])
def test_one_product_with_two_entitlements_lists_product_twice(self): ent_cert = StubEntitlementCertificate('product1', ['product2', 'product3'], sockets=10) product_directory = StubProductDirectory(pids=['product1']) provide(PROD_DIR, product_directory) stub_sorter = StubCertSorter() stub_sorter.valid_products['product1'] = [ent_cert, ent_cert] provide(CERT_SORTER, stub_sorter) product_status = get_installed_product_status(product_directory, None, StubUEP()) # only "product" is installed self.assertEquals(1, len(product_status))
def test_entitlement_for_installed_product_shows_subscribed(self): product_directory = StubProductDirectory(pids=['product1']) provide(PROD_DIR, product_directory) ent_cert = StubEntitlementCertificate('product1') stub_sorter = StubCertSorter() stub_sorter.valid_products['product1'] = [ent_cert] provide(CERT_SORTER, stub_sorter) product_status = get_installed_product_status(product_directory, None, StubUEP()) self.assertEquals(1, len(product_status)) self.assertEquals("subscribed", product_status[0][4])
def test_expired_entitlement_for_installed_product_shows_expired(self): ent_cert = StubEntitlementCertificate('product1', end_date=(datetime.now() - timedelta(days=2))) product_directory = StubProductDirectory(pids=['product1']) provide(PROD_DIR, product_directory) stub_sorter = StubCertSorter() stub_sorter.expired_products['product1'] = [ent_cert] provide(CERT_SORTER, stub_sorter) product_status = get_installed_product_status(product_directory, None, StubUEP()) self.assertEquals(1, len(product_status)) self.assertEquals("expired", product_status[0][4])
def test_one_subscription_with_bundled_products_lists_once(self): ent_cert = StubEntitlementCertificate('product1', ['product2', 'product3'], sockets=10) product_directory = StubProductDirectory(pids=['product1']) provide(PROD_DIR, product_directory) stub_sorter = StubCertSorter() stub_sorter.valid_products['product1'] = [ent_cert] stub_sorter.valid_products['product2'] = [ent_cert] stub_sorter.valid_products['product3'] = [ent_cert] provide(CERT_SORTER, stub_sorter) product_status = get_installed_product_status(product_directory, None, StubUEP()) # neither product3 or product 2 are installed self.assertEquals(1, len(product_status)) self.assertEquals("product1", product_status[0][0]) self.assertEquals("subscribed", product_status[0][4])
def test_scan_for_expired_or_future_products(self): prod_dir = StubProductDirectory(pids=["a", "b", "c", "d", "e"]) ent_dir = StubEntitlementDirectory([ StubEntitlementCertificate(StubProduct("a")), StubEntitlementCertificate(StubProduct("b")), StubEntitlementCertificate(StubProduct("c")), StubEntitlementCertificate( StubProduct("d"), start_date=datetime.now() - timedelta(days=365), end_date=datetime.now() - timedelta(days=2)), StubEntitlementCertificate( StubProduct("e"), start_date=datetime.now() + timedelta(days=365), end_date=datetime.now() + timedelta(days=730)), ]) inj.provide(inj.PROD_DIR, prod_dir) inj.provide(inj.ENT_DIR, ent_dir) sorter = StubCertSorter() sorter.valid_products = {"a": StubProduct("a")} sorter.partially_valid_products = {"b": StubProduct("b")} sorter._scan_entitlement_certs() self.assertEquals(["d"], sorter.expired_products.keys()) self.assertEquals(["e"], sorter.future_products.keys()) self.assertEquals(3, len(sorter.valid_entitlement_certs))