def enable_search_page_and_activity_pages_feature_flags( app, # This fixture depends on the app fixture so that the app fixture # will be run before, not after, this fixture. This is necessary # because the app fixture cleans the database which would delete # the changes made by this fixture if it were run after this # fixture. db_session): for feature_name in ('search_page', 'activity_pages'): assert db_session.query(models.Feature).filter_by(name=feature_name).all() == [] db_session.add(models.Feature(name=feature_name, everyone=True)) db_session.commit()
def test_features_save_sets_cohorts_when_checkboxes_on(pyramid_request): feat = models.Feature(name='feat') cohort = models.FeatureCohort(name='cohort') pyramid_request.db.add(feat) pyramid_request.db.add(cohort) pyramid_request.db.flush() pyramid_request.POST = {'feat[cohorts][cohort]': 'on'} features_save(pyramid_request) feat = pyramid_request.db.query(models.Feature).filter_by(name='feat').first() cohort = pyramid_request.db.query(models.FeatureCohort).filter_by(name='cohort').first() assert len(feat.cohorts) == 1 assert cohort in feat.cohorts
def test_features_save_unsets_cohorts_when_checkboxes_off(pyramid_request): feat = models.Feature(name='feat') cohort = models.FeatureCohort(name='cohort') feat.cohorts.append(cohort) pyramid_request.db.add(feat) pyramid_request.db.add(cohort) pyramid_request.db.flush() pyramid_request.POST = {'feat[cohorts][cohort]': 'off'} views.features_save(pyramid_request) feat = pyramid_request.db.query(models.Feature).filter_by(name='feat').first() cohort = pyramid_request.db.query(models.FeatureCohort).filter_by(name='cohort').first() assert len(feat.cohorts) == 0 assert cohort not in feat.cohorts
def test_features_save_unsets_cohorts_when_checkboxes_off(pyramid_request): feat = models.Feature(name="feat") cohort = models.FeatureCohort(name="cohort") feat.cohorts.append(cohort) pyramid_request.db.add(feat) pyramid_request.db.add(cohort) pyramid_request.db.flush() pyramid_request.POST = {"feat[cohorts][cohort]": "off"} features_save(pyramid_request) feat = pyramid_request.db.query(models.Feature).filter_by(name="feat").first() cohort = ( pyramid_request.db.query(models.FeatureCohort).filter_by(name="cohort").first() ) assert len(feat.cohorts) == 0 assert cohort not in feat.cohorts