def test_can_close_published_opportunity_early_with_single_invited_seller_that_responded(
            self, briefs, brief_responses, lot_slug):
        lot = lots_service.find(slug=lot_slug).one_or_none()
        brief = briefs_service.find(lot=lot, status='live').one_or_none()

        can_close = can_close_opportunity_early(brief)
        assert can_close is True
    def test_can_not_close_published_atm_opportunity_early(
            self, overview_briefs):
        lot = lots_service.find(slug='atm').one_or_none()
        brief = briefs_service.find(lot=lot, status='live').one_or_none()

        can_close = can_close_opportunity_early(brief)
        assert can_close is False
    def test_can_not_close_published_opportunity_early_with_incorrect_seller_selector(
            self, overview_briefs, brief_data):
        lot = lots_service.find(slug=brief_data['lot_slug']).one_or_none()
        brief = briefs_service.find(lot=lot, status='live').one_or_none()
        brief.data['sellerSelector'] = brief_data['seller_selector']

        can_close = can_close_opportunity_early(brief)
        assert can_close is False
    def test_can_not_close_published_opportunity_early_with_multiple_invited_sellers(
            self, overview_briefs, lot_slug):
        lot = lots_service.find(slug=lot_slug).one_or_none()
        brief = briefs_service.find(lot=lot, status='live').one_or_none()
        brief.data['sellers'].update({'456': 'Big Corp'})

        can_close = can_close_opportunity_early(brief)
        assert can_close is False
    def test_can_not_close_published_opportunity_early_with_multiple_seller_responses(
            self, overview_briefs, suppliers, lot_slug):
        lot = lots_service.find(slug=lot_slug).one_or_none()
        brief = briefs_service.find(lot=lot, status='live').one_or_none()

        db.session.add(
            BriefResponse(id=6, brief_id=brief.id, data={}, supplier_code=3))

        db.session.commit()

        can_close = can_close_opportunity_early(brief)
        assert can_close is False
 def test_can_not_close_opportunity_early_with_incorrect_status(
         self, overview_briefs, status):
     brief = briefs_service.find(status=status).first()
     can_close = can_close_opportunity_early(brief)
     assert can_close is False