Esempio n. 1
0
 def test_fetch_users(self):
     with self.settings(BRIDGE_GWS_CACHE='/tmp/gwsuser1'):
         loader = GwsBridgeLoader(BridgeWorker())
         user_list = loader.fetch_users()
         self.assertEqual(len(user_list), 7)
         self.assertEqual(sorted(user_list), [
             'affiemp', 'error500', 'faculty', 'javerage', 'not_in_pws',
             'retiree', 'staff'
         ])
Esempio n. 2
0
 def test_account_not_changed(self):
     with self.settings(BRIDGE_USER_WORK_POSITIONS=2):
         set_db_records()
         loader = GwsBridgeLoader(BridgeWorker())
         person = get_person('javerage')
         hrp_wkr = get_worker(person)
         bridge_account = loader.get_bridge().get_user_by_uwnetid(
             'javerage')
         self.assertTrue(
             loader.account_not_changed(bridge_account, person, hrp_wkr))
Esempio n. 3
0
    def test_match_bridge_account(self):
        # 500 error
        uw_acc = set_uw_account("error500")
        loader = GwsBridgeLoader(BridgeWorker())
        self.assertRaises(DataFailureException, loader.match_bridge_account,
                          uw_acc)

        # account not exist
        uw_acc = set_uw_account("affiemp")
        loader = GwsBridgeLoader(BridgeWorker())
        bri_acc = loader.match_bridge_account(uw_acc)
        self.assertIsNone(bri_acc)

        # account is deleted
        uw_acc = set_uw_account("staff")
        bri_acc = loader.match_bridge_account(uw_acc)
        self.assertIsNone(bri_acc)

        # exists an account with a prior netid
        uw_acc = set_uw_account("faculty")
        uw_acc.prev_netid = 'tyler'
        bri_acc = loader.match_bridge_account(uw_acc)
        self.assertEqual(bri_acc.netid, 'tyler')

        # exists two accounts (one with Lreaning History one without),
        # pick the one with LH
        uw_acc = set_uw_account("retiree")
        uw_acc.bridge_id = 204
        uw_acc.prev_netid = "ellen"
        uw_acc1 = set_uw_account("ellen")
        bri_acc = loader.match_bridge_account(uw_acc)
        self.assertEqual(bri_acc.netid, 'ellen')
        self.assertEqual(bri_acc.bridge_id, 194)
Esempio n. 4
0
 def test_load_abort(self):
     with self.settings(ERRORS_TO_ABORT_LOADER=[500],
                        BRIDGE_USER_WORK_POSITIONS=2,
                        BRIDGE_GWS_CACHE='/tmp/gwsuser3'):
         set_db_err_records()
         loader = GwsBridgeLoader(BridgeWorker())
         self.assertRaises(DataFailureException, loader.load)
    def test_regid_change_user(self):
        user = UwBridgeUser(netid='javerage',
                            regid="0136CCB8F66711D5BE060004AC494FFE",
                            last_visited_at=get_now(),
                            first_name="Changed",
                            last_name="Regid")
        user.save()
        loader = GwsBridgeLoader(CsvWorker())
        loader.load()
        self.assertEqual(loader.get_regid_changed_count(), 1)

        users = loader.worker.get_users_regid_changed()
        self.assertEqual(users[0].netid, "javerage")
        self.assertEqual(users[0].regid,
                         "9136CCB8F66711D5BE060004AC494FFE")
        self.assertTrue(users[0].regid_changed())
 def test_load_new_users_with_hrp(self):
     loader = GwsBridgeLoader(CsvWorker(),
                              include_hrp=True)
     loader.load()
     self.assertEqual(loader.get_total_count(), 12)
     self.assertEqual(loader.get_new_user_count(), 8)
     self.assertEqual(loader.get_loaded_count(), 8)
     self.assertEqual(loader.get_netid_changed_count(), 0)
     self.assertEqual(loader.get_regid_changed_count(), 0)
    def test_restore_user(self):
        user = UwBridgeUser(netid='javerage',
                            regid="9136CCB8F66711D5BE060004AC494FFE",
                            last_visited_at=get_now(),
                            disabled=True,
                            email='*****@*****.**',
                            first_name="James",
                            last_name="Changed")
        user.save()
        loader = GwsBridgeLoader(CsvWorker())
        loader.load()
        self.assertEqual(loader.get_restored_count(), 1)

        users = loader.worker.get_users_to_restore()
        self.assertEqual(users[0].netid, "javerage")
        self.assertEqual(users[0].regid,
                         "9136CCB8F66711D5BE060004AC494FFE")
        self.assertTrue(users[0].is_restore())
Esempio n. 8
0
    def test_del_bridge_account(self):
        loader = GwsBridgeLoader(BridgeWorker())
        ellen = loader.get_bridge().get_user_by_uwnetid('ellen')
        self.assertFalse(loader.del_bridge_account(ellen))

        retiree = loader.get_bridge().get_user_by_uwnetid('retiree')
        self.assertTrue(loader.del_bridge_account(retiree))
        self.assertEqual(loader.get_deleted_count(), 1)
    def test_load_user_csv_file(self):
        with self.settings(BRIDGE_IMPORT_USER_FILE_SIZE=3):
            user_loader = GwsBridgeLoader(CsvWorker(),
                                          include_hrp=False)
            maker = CsvFileMaker(user_loader)
            fp = maker.get_file_path()
            self.assertTrue(re.match(PATTERN, fp))
            self.assertEqual(user_loader.get_loaded_count(), 8)
            self.assertEqual(user_loader.get_deleted_count(), 0)
            self.assertEqual(user_loader.get_netid_changed_count(), 0)
            self.assertEqual(user_loader.get_regid_changed_count(), 0)

            number_users_wrote = maker.make_load_user_files()
            self.assertTrue(maker.is_file_wrote())
            self.assertEqual(number_users_wrote, 8)
            self.assertTrue(os.path.exists(fp + "/busrs1.csv"))
            self.assertTrue(os.path.exists(fp + "/busrs2.csv"))
            self.assertTrue(os.path.exists(fp + "/busrs3.csv"))
            os.remove(fp + "/busrs1.csv")
            os.remove(fp + "/busrs2.csv")
            os.remove(fp + "/busrs3.csv")
            os.rmdir(fp)
 def test_load_users_no_hrp(self):
     user = UwBridgeUser(netid='javerage',
                         regid="9136CCB8F66711D5BE060004AC494FFE",
                         last_visited_at=get_now(),
                         email='*****@*****.**',
                         first_name="James",
                         last_name="Changed")
     user.save()
     loader = GwsBridgeLoader(CsvWorker())
     loader.load()
     self.assertEqual(loader.get_total_count(), 12)
     self.assertEqual(loader.get_new_user_count(), 7)
     self.assertEqual(loader.get_loaded_count(), 8)
     self.assertEqual(loader.get_netid_changed_count(), 0)
     self.assertEqual(loader.get_regid_changed_count(), 0)
Esempio n. 11
0
    def test_is_priority_change(self):
        loader = GwsBridgeLoader(BridgeWorker())
        uw_acc = UwAccount.objects.create(netid="affiemp")
        self.assertTrue(loader.is_priority_change(uw_acc))

        uw_acc = set_uw_account("faculty")
        uw_acc.prev_netid = "tyler"
        self.assertTrue(loader.is_priority_change(uw_acc))

        uw_acc = set_uw_account("leftuw")
        uw_acc.terminate_at = get_now()
        self.assertTrue(loader.is_priority_change(uw_acc))

        uw_acc = set_uw_account("staff")
        uw_acc.disabled = True
        self.assertTrue(loader.is_priority_change(uw_acc))
    def handle(self, *args, **options):
        source = options['data-source']
        try:
            include_hrp = options['--include-hrp'] is not None
        except KeyError:
            include_hrp = False

        if source == 'gws':
            loader = GwsBridgeLoader(BridgeWorker(),
                                     include_hrp=include_hrp)
        elif source == 'db':
            loader = UserUpdater(BridgeWorker(),
                                 include_hrp=include_hrp)
        elif source == 'bridge':
            loader = BridgeChecker(BridgeWorker(),
                                   include_hrp=include_hrp)
        elif source == 'rerun':
            loader = Reloader(BridgeWorker(),
                              include_hrp=include_hrp)
        else:
            print "Invalid data source, abort!"
            return

        loader.load()
        print datetime.now()
        print "Checked all %d users in %s\n" % (loader.get_total_count(),
                                                source)
        print "total %d users loaded\n" % loader.get_loaded_count()
        print "%d new users added\n" % loader.get_new_user_count()
        print "%d users changed netid\n" % loader.get_netid_changed_count()
        print "%d users changed regid\n" % loader.get_regid_changed_count()
        print "%d users deleted\n" % loader.get_deleted_count()
        print "%d users restored\n" % loader.get_restored_count()

        if loader.has_error():
            print "Errors: %s" % loader.get_error_report()
Esempio n. 13
0
    def test_apply_change_to_bridge(self):
        loader = GwsBridgeLoader(BridgeWorker())

        # add new account
        uw_acc = set_uw_account("affiemp")
        affiemp = get_person("affiemp")
        loader.apply_change_to_bridge(uw_acc, affiemp)
        self.assertEqual(loader.get_new_user_count(), 1)
        self.assertEqual(loader.get_updated_count(), 0)

        # restore
        uw_acc = set_uw_account("staff")
        uw_acc.set_bridge_id(196)
        uw_acc.set_disable()
        staff = get_person("staff")
        loader.apply_change_to_bridge(uw_acc, staff)
        self.assertEqual(loader.get_restored_count(), 1)
        self.assertEqual(loader.get_updated_count(), 1)

        # change uid and update
        uw_acc = set_uw_account('faculty')
        uw_acc.prev_netid = 'tyler'
        uw_acc.set_bridge_id(198)
        faculty = get_person("faculty")
        loader.apply_change_to_bridge(uw_acc, faculty)
        self.assertEqual(loader.get_netid_changed_count(), 1)
        self.assertEqual(loader.get_updated_count(), 2)

        # change uid and update
        uw_acc = set_uw_account("retiree")
        uw_acc.bridge_id = 204
        uw_acc.prev_netid = "ellen"
        retiree = get_person("retiree")
        loader.apply_change_to_bridge(uw_acc, retiree)
        self.assertEqual(loader.get_netid_changed_count(), 2)
        self.assertEqual(loader.get_updated_count(), 3)
Esempio n. 14
0
    def test_field_not_changed(self):
        with self.settings(BRIDGE_USER_WORK_POSITIONS=2):
            loader = GwsBridgeLoader(BridgeWorker())

            person = get_person('javerage')
            hrp_wkr = get_worker(person)
            bridge_account = loader.get_bridge().get_user_by_uwnetid(
                'javerage')
            self.assertTrue(loader.regid_not_changed(bridge_account, person))
            self.assertTrue(loader.eid_not_changed(bridge_account, person))
            self.assertTrue(loader.sid_not_changed(bridge_account, person))
            self.assertTrue(
                loader.pos_data_not_changed(bridge_account, hrp_wkr))

            person = get_person('faculty')
            hrp_wkr = get_worker(person)
            bridge_account = loader.get_bridge().get_user_by_uwnetid('tyler')
            self.assertFalse(loader.regid_not_changed(bridge_account, person))
            self.assertFalse(loader.eid_not_changed(bridge_account, person))
            self.assertFalse(loader.sid_not_changed(bridge_account, person))
            self.assertFalse(
                loader.pos_data_not_changed(bridge_account, hrp_wkr))
Esempio n. 15
0
 def test_load_gws(self):
     with self.settings(ERRORS_TO_ABORT_LOADER=[],
                        BRIDGE_USER_WORK_POSITIONS=2,
                        BRIDGE_GWS_CACHE='/tmp/gwsuser2'):
         set_db_records()
         loader = GwsBridgeLoader(BridgeWorker())
         loader.load()
         self.assertEqual(loader.get_total_count(), 7)
         self.assertEqual(loader.get_total_checked_users(), 6)
         self.assertEqual(loader.get_new_user_count(), 1)
         self.assertEqual(loader.get_restored_count(), 1)
         self.assertEqual(loader.get_netid_changed_count(), 2)
         self.assertEqual(loader.get_updated_count(), 3)
         self.assertTrue(loader.has_error())
Esempio n. 16
0
    def handle(self, *args, **options):
        timer = Timer()
        logger.info("Start at {0}".format(datetime.now()))

        source = options['data-source']
        workr = BridgeWorker()
        if source == 'gws':
            loader = GwsBridgeLoader(workr)
        elif source == 'db-emp':
            loader = ActiveWkrLoader(workr)
        elif source == 'db-other':
            loader = OtherUserLoader(workr)
        elif source == 'bridge':
            loader = BridgeChecker(workr)
        elif source == 'pws':
            loader = PwsBridgeLoader(workr)
        elif source == 'hrp':
            loader = HrpBridgeLoader(workr)
        else:
            logger.info("Invalid data source, abort!")
            return
        try:
            loader.load()
        except Exception as ex:
            logger.error(str(ex))

        log_resp_time(logger, "Load users", timer)

        logger.info("Checked {0:d} users, source: {1}\n".format(
            loader.get_total_checked_users(), source))

        logger.info("{0:d} new users added\n".format(
            loader.get_new_user_count()))
        logger.info("{0:d} users changed netid\n".format(
            loader.get_netid_changed_count()))
        logger.info("{0:d} users deleted\n".format(
            loader.get_deleted_count()))
        logger.info("{0:d} users restored\n".format(
            loader.get_restored_count()))
        logger.info("{0:d} users updated\n".format(
            loader.get_updated_count()))

        if loader.has_error():
            logger.error("Errors: {0}".format(loader.get_error_report()))