Exemple #1
0
 def tearDown(self):
     logger.warning('Testing API done.')
     # clean up orders
     self.mock_order.tear_down_testing_orders()
     # clean up users
     self.mock_user.cleanup()
     os.environ['espa_api_testing'] = ''
Exemple #2
0
    def setUp(self):
        logger.warning('Testing API started...')
        os.environ['espa_api_testing'] = 'True'
        # create a user
        self.mock_user = MockUser()
        self.mock_order = MockOrder()
        user_id = self.mock_user.add_testing_user()
        order_id = self.mock_order.generate_testing_order(user_id)
        self.order = Order.find(order_id)
        self.user = User.find(user_id)
        self.product_id = 'LT05_L1TP_032028_20120425_20160830_01_T1'
        self.sensor_id = 'tm5_collection'
        self.staff_product_id = 'LE07_L1TP_010028_20050420_20160925_01_T1'
        self.staff_sensor = 'etm7_collection'
        self.global_product_id = 'LE70450302003206EDC01'

        staff_user_id = self.mock_user.add_testing_user()
        self.staff_user = User.find(staff_user_id)
        self.staff_user.update('is_staff', True)
        staff_order_id = self.mock_order.generate_testing_order(staff_user_id)
        staff_order = Order.find(staff_order_id)
        staff_scene = staff_order.scenes()[0]
        staff_scene.update('name', self.staff_product_id)
        user_scene = self.order.scenes()[0]
        user_scene.update('name', self.staff_product_id)

        with open(os.path.join(__location__, 'domain/restricted.yaml')) as f:
            self.restricted = yaml.load(f.read())
            self.restricted['all']['role'].remove('restricted_prod')
Exemple #3
0
    def setUp(self):
        logger.warning('Testing Inventory started...')
        os.environ['espa_api_testing'] = 'True'
        self.lta_prod_good = u'LE07_L1TP_026027_20170912_20171008_01_T1'
        self.lta_prod_bad = u'LE07_L1TP_026027_20170912_20171008_01_T1'
        self.lpdaac_prod_good = u'MOD09A1.A2016305.h11v04.006.2016314200836'
        self.lpdaac_prod_bad = u'MOD09A1.A2016305.h11v04.006.9999999999999'

        self.lta_order_good = {
            'etm7_collection': {
                'inputs': [self.lta_prod_good]
            }
        }
        self.lta_order_bad = {
            'olitirs8_collection': {
                'inputs': [self.lta_prod_bad]
            }
        }

        self.lpdaac_order_good = {
            'mod09a1': {
                'inputs': [self.lpdaac_prod_good]
            }
        }
        self.lpdaac_order_bad = {'mod09a1': {'inputs': [self.lpdaac_prod_bad]}}
Exemple #4
0
    def setUp(self):
        logger.warning('Testing Validation started...')
        os.environ['espa_api_testing'] = 'True'

        self.mock_user = MockUser()
        self.staffuser = User.find(self.mock_user.add_testing_user())
        self.staffuser.update('is_staff', True)

        self.base_order = lowercase_all(testorders.build_base_order())
        self.base_schema = BaseValidationSchema.request_schema
Exemple #5
0
def verify_user(username, password):
    if (username is None) or (not (str(username).strip())):
        logger.warning('Invalid username supplied: %s', username)
        flask.g.error_reason = 'auth'
        return False
    try:
        # usernames with spaces are valid in EE, though they can't be used for cache keys
        cache_key = '{}-credentials'.format(
            username.replace(' ', '_espa_cred_insert_'))
        cache_entry = cache.get(cache_key)

        if cache_entry:
            # Need to be encrypted?
            if cache_entry['password'] == password:
                user_entry = cache_entry['user_entry']

            # User may have changed their password while it was still cached
            else:
                user_entry = User.get(username, password)
        else:
            user_entry = User.get(username, password)

        cache_entry = {'password': password, 'user_entry': user_entry}
        cache.set(cache_key, cache_entry, 7200)

        user = User(*user_entry)
        flask.g.user = user  # Replace usage with cached version
    except UserException as e:
        logger.info('Invalid login attempt, username: {}, {}'.format(
            username, e))
        flask.g.error_reason = 'unknown'
        return False
    except ERSApiAuthFailedException as e:
        logger.info('Invalid login attempt, username: {}, {}'.format(
            username, e))
        flask.g.error_reason = 'auth'
        return False
    except ERSApiErrorException as e:
        logger.info('ERS lookup failed, username: {}, {}'.format(username, e))
        flask.g.error_reason = 'unknown'
        return False
    except ERSApiConnectionException as e:
        logger.info('ERS is down {}'.format(e))
        flask.g.error_reason = 'conn'
        return False
    except DBConnectException as e:
        logger.critical('! Database reported a problem: {}'.format(e))
        flask.g.error_reasons = 'db'
        return False
    except Exception:
        logger.info('Invalid login attempt, username: {}'.format(username))
        flask.g.error_reason = 'unknown'
        return False

    return True
Exemple #6
0
    def setUp(self):
        logger.warning('Testing Inventory started...')
        os.environ['espa_api_testing'] = 'True'
        self.lta_prod_good = u'LT50300372011275PAC01'
        self.lta_prod_bad = u'LE70290302001200EDC01'
        self.lpdaac_prod_good = u'MOD09A1.A2016305.h11v04.006.2016314200836'
        self.lpdaac_prod_bad = u'MOD09A1.A2016305.h11v04.006.9999999999999'

        self.lta_order_good = {'olitirs8': {'inputs': [self.lta_prod_good]}}
        self.lta_order_bad = {'olitirs8': {'inputs': [self.lta_prod_bad]}}

        self.lpdaac_order_good = {
            'mod09a1': {
                'inputs': [self.lpdaac_prod_good]
            }
        }
        self.lpdaac_order_bad = {'mod09a1': {'inputs': [self.lpdaac_prod_bad]}}