def users(self, app): with app.app_context(): db.session.add( User(id=1, name='User 1', password='******', email_address='*****@*****.**', active=True, role='supplier', supplier_code=1, password_changed_at=utcnow())) db.session.add( User(id=2, name='User 2', password='******', email_address='*****@*****.**', active=True, role='supplier', supplier_code=1, password_changed_at=utcnow())) db.session.add( User(id=3, name='User 3', password='******', email_address='*****@*****.**', active=False, role='supplier', supplier_code=1, password_changed_at=utcnow())) yield db.session.query(User).all()
def setup_dummy_brief( self, id=None, user_id=1, status=None, data=None, published_at=None, withdrawn_at=None, framework_slug="digital-outcomes-and-specialists", lot_slug="digital-specialists" ): if published_at is not None and status is not None: raise ValueError("Cannot provide both status and published_at") if withdrawn_at is not None and published_at is None: raise ValueError("If setting withdrawn_at then published_at must also be set") if not published_at: if status == 'closed': published_at = utcnow() - timedelta(days=1000) elif status == 'withdrawn': published_at = utcnow() - timedelta(days=1000) withdrawn_at = utcnow() else: published_at = None if status == 'draft' else utcnow() framework = Framework.query.filter(Framework.slug == framework_slug).first() lot = Lot.query.filter(Lot.slug == lot_slug).first() db.session.add(Brief( id=id, data=data, framework=framework, lot=lot, users=[User.query.get(user_id)], published_at=published_at, withdrawn_at=withdrawn_at, ))
def users(app, agencies): with app.app_context(): db.session.add( User(id=4, name='Muu Muu', email_address='*****@*****.**', password='******', active=True, password_changed_at=utcnow(), role='buyer', agency_id=10)) db.session.add( User(id=5, name='Moo Moo', email_address='*****@*****.**', password='******', active=True, password_changed_at=utcnow(), role='buyer', agency_id=10)) db.session.commit() yield db.session.query(User).all()
def test_live_section_links_are_disabled_for_closed_specialist_brief(app, specialist_brief): with app.app_context(): specialist_brief.published_at = utcnow().subtract(weeks=1) specialist_brief.questions_closed_at = utcnow().subtract(days=2) specialist_brief.closed_at = utcnow().subtract(days=1) links = brief_overview_service.get_live_links(specialist_brief) for link in links: assert all(not link['path'] for link in links)
def test_live_section_links_are_disabled_for_closed_specialist_brief(current_user, app, specialist_brief): with app.app_context(): specialist_brief.published_at = utcnow().subtract(weeks=1) specialist_brief.questions_closed_at = utcnow().subtract(days=2) specialist_brief.closed_at = utcnow().subtract(days=1) links = brief_overview_business.get_live_links(specialist_brief) for link in links: assert all(not link['path'] for link in links)
def test_work_order_section_has_start_work_order_link_for_specialist_brief(app, specialist_brief): with app.app_context(): specialist_brief.published_at = utcnow().subtract(weeks=1) specialist_brief.questions_closed_at = utcnow().subtract(days=2) specialist_brief.closed_at = utcnow().subtract(days=1) links = brief_overview_service.get_work_order_links(specialist_brief) start_work_order_link = next(iter(links)) assert start_work_order_link['path'] assert start_work_order_link['text'] == 'Start a work order'
def test_shortlist_section_has_all_links_for_closed_specialist_brief(app, specialist_brief, shortlist_links): with app.app_context(): specialist_brief.published_at = utcnow().subtract(weeks=1) specialist_brief.questions_closed_at = utcnow().subtract(days=2) specialist_brief.closed_at = utcnow().subtract(days=1) links = brief_overview_service.get_shortlist_links(specialist_brief) for link in links: assert link['path'] assert any(link['text'] == text for text in shortlist_links)
def test_work_order_section_has_start_work_order_link_for_specialist_brief( current_user, app, specialist_brief): with app.app_context(): specialist_brief.published_at = utcnow().subtract(weeks=1) specialist_brief.questions_closed_at = utcnow().subtract(days=2) specialist_brief.closed_at = utcnow().subtract(days=1) links = brief_overview_business.get_work_order_links(specialist_brief) start_work_order_link = next(iter(links)) assert start_work_order_link['path'] assert start_work_order_link['text'] == 'Start a work order'
def briefs(app, request, users): params = request.param if hasattr(request, 'param') else {} published_at = pendulum.parse( params['published_at']) if 'published_at' in params else utcnow() published_at = None if 'unpublished' in params and params[ 'unpublished'] else published_at data = params[ 'data'] if 'data' in params else COMPLETE_SPECIALIST_BRIEF.copy() data['sellerCategory'] = params[ 'sellerCategory'] if 'sellerCategory' in params else 1 lot_slug = params['lot_slug'] if 'lot_slug' in params else 'specialist' framework_slug = params[ 'framework_slug'] if 'framework_slug' in params else 'digital-marketplace' with app.app_context(): for i in range(1, 6): db.session.add( Brief(id=i, data=data, framework=Framework.query.filter( Framework.slug == framework_slug).first(), lot=Lot.query.filter(Lot.slug == lot_slug).first(), users=users, published_at=published_at, withdrawn_at=None)) db.session.flush() db.session.commit() yield Brief.query.all()
def users(client, app): with app.app_context(): db.session.add( User(id=1, email_address='*****@*****.**', name='Test', password=encryption.hashpw('test'), active=True, role='buyer', password_changed_at=utcnow(), agency_id=1)) db.session.add( User(id=2, email_address='*****@*****.**', name='Test', password=encryption.hashpw('test'), active=True, role='buyer', password_changed_at=utcnow(), agency_id=2)) db.session.add( User(id=3, email_address='*****@*****.**', name='Test User Team Lead', password=encryption.hashpw('test'), active=True, role='buyer', password_changed_at=utcnow(), agency_id=1)) db.session.add( User(id=4, email_address='*****@*****.**', name='Test User No Team', password=encryption.hashpw('test'), active=True, role='buyer', password_changed_at=utcnow(), agency_id=1)) db.session.commit() yield db.session.query(User).all()
def users(self, app): with app.app_context(): db.session.add( User( id=1, name='Muu Muu', email_address='*****@*****.**', password='******', active=True, password_changed_at=utcnow(), role='buyer' ) ) db.session.add( User( id=2, name='Moo Moo', email_address='*****@*****.**', password='******', active=True, password_changed_at=utcnow(), role='buyer' ) ) db.session.add( User( id=3, name='Myu Myu', email_address='*****@*****.**', password='******', active=True, password_changed_at=utcnow(), role='buyer' ) ) db.session.commit() yield db.session.query(User).all()
def buyer_dashboard_users(app, request): with app.app_context(): db.session.add(User( id=1, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='buyer', password_changed_at=utcnow() )) db.session.add(User( id=2, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='buyer', password_changed_at=utcnow() )) db.session.add(User( id=3, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='buyer', password_changed_at=utcnow() )) db.session.flush() framework = Framework.query.filter(Framework.slug == "digital-marketplace").first() db.session.add(UserFramework(user_id=1, framework_id=framework.id)) db.session.add(UserFramework(user_id=2, framework_id=framework.id)) db.session.commit() yield User.query.all()
def users(app, request, agencies): params = request.param if hasattr(request, 'param') else {} user_role = params['user_role'] if 'user_role' in params else 'buyer' email_domain = params[ 'email_domain'] if 'email_domain' in params else 'digital.gov.au' framework_slug = params[ 'framework_slug'] if 'framework_slug' in params else 'digital-marketplace' with app.app_context(): for i in range(1, 6): new_user = User(id=i, email_address='{}{}@{}'.format( fake.first_name(), i, email_domain).lower(), name=fake.name(), password=fake.password(), active=True, role=user_role, password_changed_at=utcnow()) if user_role == 'supplier': new_user.supplier_code = i db.session.add(new_user) db.session.flush() framework = Framework.query.filter( Framework.slug == framework_slug).first() db.session.add(UserFramework(user_id=i, framework_id=framework.id)) if user_role == 'buyer': db.session.add( User(id=7, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='buyer', password_changed_at=utcnow(), agency_id=1)) db.session.flush() db.session.add(UserFramework(user_id=7, framework_id=framework.id)) db.session.commit() yield User.query.filter(User.role == user_role).all()
def admin_users(app, request): with app.app_context(): db.session.add( User(id=7, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='admin', password_changed_at=utcnow())) db.session.commit() yield User.query.filter(User.role == 'admin').all()
def users(self, app): with app.app_context(): db.session.add( User( id=1, name='User 1', password='******', email_address='*****@*****.**', active=True, role='supplier', supplier_code=1, password_changed_at=utcnow() ) ) db.session.add( User( id=2, name='User 2', password='******', email_address='*****@*****.**', active=True, role='supplier', supplier_code=1, password_changed_at=utcnow() ) ) db.session.add( User( id=3, name='User 3', password='******', email_address='*****@*****.**', active=False, role='supplier', supplier_code=1, password_changed_at=utcnow() ) ) yield db.session.query(User).all()
def application_user(app, request, applications): with app.app_context(): db.session.add( User(id=1, email_address='*****@*****.**', name=fake.name(), password=fake.password(), active=True, role='applicant', application_id=applications[0].id, password_changed_at=utcnow())) db.session.commit() yield User.query.first()
def setup_dummy_user(id=123, role='buyer'): if User.query.get(id): return id user = User(id=id, email_address="test+{}@digital.gov.au".format(id), name="my name", password="******", active=True, role=role, password_changed_at=utcnow()) db.session.add(user) db.session.commit() return user.id
def buyer_user(app, request): with app.app_context(): user = User.query.order_by(User.id.desc()).first() id = user.id + 1 if user else 1 db.session.add( User(id=id, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('test'), active=True, role='buyer', password_changed_at=utcnow())) db.session.commit() yield User.query.get(id)
def setup_dummy_service(self, service_id, supplier_code=1, data=None, status='published', framework_id=1, lot_id=1): now = utcnow() db.session.add(Service(service_id=service_id, supplier_code=supplier_code, status=status, data=data or { 'serviceName': 'Service {}'. format(service_id) }, framework_id=framework_id, lot_id=lot_id, created_at=now, updated_at=now))
def users(self, app): with app.app_context(): db.session.add( User(id=1, name='Seller', email_address='*****@*****.**', password='******', active=True, password_changed_at=utcnow(), role='supplier')) db.session.commit() yield db.session.query(User).all()
def setup_dummy_brief(self, id=None, user_id=1, status=None, data=None, published_at=None, withdrawn_at=None, framework_slug="digital-outcomes-and-specialists", lot_slug="digital-specialists"): if published_at is not None and status is not None: raise ValueError("Cannot provide both status and published_at") if withdrawn_at is not None and published_at is None: raise ValueError( "If setting withdrawn_at then published_at must also be set") if not published_at: if status == 'closed': published_at = utcnow() - timedelta(days=1000) elif status == 'withdrawn': published_at = utcnow() - timedelta(days=1000) withdrawn_at = utcnow() else: published_at = None if status == 'draft' else utcnow() framework = Framework.query.filter( Framework.slug == framework_slug).first() lot = Lot.query.filter(Lot.slug == lot_slug).first() db.session.add( Brief( id=id, data=data, framework=framework, lot=lot, users=[User.query.get(user_id)], published_at=published_at, withdrawn_at=withdrawn_at, ))
def setup_dummy_applicant(self, id, application_id): with self.app.app_context(): if User.query.get(id): return id user = User(id=id, email_address="test+{}@digital.gov.au".format(id), name="my name", password="******", active=True, role='applicant', password_changed_at=utcnow(), application_id=application_id) db.session.add(user) db.session.commit() return user.id
def setup_dummy_user(id=123, role='buyer'): if User.query.get(id): return id user = User( id=id, email_address="test+{}@digital.gov.au".format(id), name="my name", password="******", active=True, role=role, password_changed_at=utcnow() ) db.session.add(user) db.session.commit() return user.id
def setup_dummy_user(self, id=123, role='buyer', supplier_code=None): with self.app.app_context(): if User.query.get(id): return id user = User(id=id, email_address="test+{}@digital.gov.au".format(id), name="my name", password="******", active=True, role=role, supplier_code=supplier_code, password_changed_at=utcnow()) db.session.add(user) db.session.commit() return user.id
def buyer_dashboard_briefs(app, request, buyer_dashboard_users, supplier_user): with app.app_context(): for user in buyer_dashboard_users: for status in ['draft', 'live', 'closed']: brief = Brief( data=COMPLETE_DIGITAL_SPECIALISTS_BRIEF.copy(), framework=Framework.query.filter(Framework.slug == "digital-outcomes-and-specialists").first(), lot=Lot.query.filter(Lot.slug == 'digital-specialists').first(), published_at=None, closed_at=None, questions_closed_at=None, withdrawn_at=None ) db.session.add(brief) db.session.flush() if status == 'live': brief.published_at = utcnow() brief.questions_closed_at = utcnow().add(days=1) brief.closed_at = utcnow().add(days=2) elif status == 'closed': brief.published_at = utcnow().subtract(weeks=1) brief.questions_closed_at = utcnow().subtract(days=2) brief.closed_at = utcnow().subtract(days=1) brief_user = BriefUser( brief_id=brief.id, user_id=user.id ) db.session.add(brief_user) db.session.flush() # Link briefs with responses and work orders when they're live or closed if status == 'live' or status == 'closed': db.session.add(BriefResponse( brief_id=brief.id, supplier_code=supplier_user.supplier_code, data={} )) db.session.add(WorkOrder( brief_id=brief.id, supplier_code=supplier_user.supplier_code, created_at=utcnow(), data={} )) db.session.commit() yield Brief.query.all()
def supplier_user(app, request, suppliers): with app.app_context(): db.session.add( User(id=100, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='supplier', supplier_code=suppliers[0].code, password_changed_at=utcnow())) db.session.commit() db.session.flush() framework = Framework.query.filter( Framework.slug == "digital-outcomes-and-specialists").first() db.session.add(UserFramework(user_id=100, framework_id=framework.id)) db.session.commit() yield User.query.first()
def setup_dummy_user(self, id=123, role='buyer', supplier_code=None): with self.app.app_context(): if User.query.get(id): return id user = User( id=id, email_address="test+{}@digital.gov.au".format(id), name="my name", password="******", active=True, role=role, supplier_code=supplier_code, password_changed_at=utcnow() ) db.session.add(user) db.session.commit() return user.id
def supplier_user(app, request, suppliers): with app.app_context(): db.session.add(User( id=100, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='supplier', supplier_code=suppliers[0].code, password_changed_at=utcnow() )) db.session.commit() db.session.flush() framework = Framework.query.filter(Framework.slug == "digital-outcomes-and-specialists").first() db.session.add(UserFramework(user_id=100, framework_id=framework.id)) db.session.commit() yield User.query.first()
def supplier_user(app, request, suppliers): with app.app_context(): user = User.query.order_by(User.id.desc()).first() id = user.id + 1 if user else 1 db.session.add( User(id=id, email_address='*****@*****.**', name=fake.name(), password=encryption.hashpw('testpassword'), active=True, role='supplier', supplier_code=suppliers[0].code, password_changed_at=utcnow())) db.session.commit() framework = Framework.query.filter(Framework.slug == "orams").first() db.session.add(UserFramework(user_id=id, framework_id=framework.id)) db.session.commit() yield User.query.get(id)
def setup_dummy_applicant(self, id, application_id): with self.app.app_context(): if User.query.get(id): return id user = User( id=id, email_address="test+{}@digital.gov.au".format(id), name="my name", password="******", active=True, role='applicant', password_changed_at=utcnow(), application_id=application_id ) db.session.add(user) db.session.commit() return user.id
def setup_dummy_service(self, service_id, supplier_code=1, data=None, status='published', framework_id=1, lot_id=1): now = utcnow() db.session.add( Service(service_id=service_id, supplier_code=supplier_code, status=status, data=data or {'serviceName': 'Service {}'.format(service_id)}, framework_id=framework_id, lot_id=lot_id, created_at=now, updated_at=now))
def briefs(app, request, users): params = request.param if hasattr(request, 'param') else {} published_at = pendulum.parse( params['published_at']) if 'published_at' in params else utcnow() data = params[ 'data'] if 'data' in params else COMPLETE_DIGITAL_SPECIALISTS_BRIEF.copy( ) with app.app_context(): for i in range(1, 6): db.session.add( Brief(id=i, data=data, framework=Framework.query.filter( Framework.slug == "digital-service-professionals").first(), lot=Lot.query.filter( Lot.slug == 'digital-professionals').first(), users=users, published_at=published_at, withdrawn_at=None)) db.session.flush() db.session.commit() yield Brief.query.all()