def test_get_expired_licences_returns_vic_and_qld(self, supplier, users):
        expiry_date = date.today() + timedelta(days=10)
        expiry = '{}-{}-{}'.format(expiry_date.year, expiry_date.month,
                                   expiry_date.day)

        suppliers_with_expired_licences = suppliers.get_suppliers_with_expiring_labour_hire_licences(
            days=10)
        assert len(
            suppliers_with_expired_licences[0]['labour_hire_licences']) == 2
def send_labour_hire_expiry_reminder():
    # Find sellers with labour hire licences 28 days from expiry, 14 days from expiry, on expiry and 28 days after
    # expiry
    sellers = (
        suppliers.get_suppliers_with_expiring_labour_hire_licences(days=28) +
        suppliers.get_suppliers_with_expiring_labour_hire_licences(days=14) +
        suppliers.get_suppliers_with_expiring_labour_hire_licences(days=0) +
        suppliers.get_suppliers_with_expiring_labour_hire_licences(days=-28))

    if not sellers:
        return

    try:
        client = get_client()
        send_labour_hire_licence_expiry_campaign(client, sellers)
    except Exception as e:
        current_app.logger.error(
            'An error occurred while creating the expiring labour hire licence campaign, aborting: {}'
            .format(e))
        rollbar.report_exc_info()
    def test_get_expired_licences_returns_vic_only(self, supplier, users):
        expiry = pendulum.today(tz='Australia/Sydney').add(
            days=10).format('%Y-%m-%d')

        suppliers_with_expired_licences = suppliers.get_suppliers_with_expiring_labour_hire_licences(
            days=10)
        assert suppliers_with_expired_licences[0]['labour_hire_licences'] == [{
            'expiry':
            expiry,
            'state':
            'vic',
            'licenceNumber':
            'V123456'
        }]
    def test_get_expired_licences_returns_all_supplier_email_addresses(
            self, supplier, users):
        expiry_date = date.today() + timedelta(days=10)
        expiry = '{}-{}-{}'.format(expiry_date.year, expiry_date.month,
                                   expiry_date.day)

        suppliers_with_expired_licences = suppliers.get_suppliers_with_expiring_labour_hire_licences(
            days=10)

        email_addresses = suppliers_with_expired_licences[0]['email_addresses']
        assert len(email_addresses) == 4
        assert '*****@*****.**' in email_addresses
        assert '*****@*****.**' in email_addresses
        assert '*****@*****.**' in email_addresses
        assert '*****@*****.**' in email_addresses
    def test_get_expired_licences_removes_duplicate_email_addresses(
            self, supplier, users):
        expiry_date = date.today() + timedelta(days=10)
        expiry = '{}-{}-{}'.format(expiry_date.year, expiry_date.month,
                                   expiry_date.day)

        supplier.data['contact_email'] = '*****@*****.**'
        supplier.data['email'] = '*****@*****.**'

        suppliers_with_expired_licences = suppliers.get_suppliers_with_expiring_labour_hire_licences(
            days=10)

        email_addresses = suppliers_with_expired_licences[0]['email_addresses']
        assert len(email_addresses) == 2
        assert '*****@*****.**' in email_addresses
        assert '*****@*****.**' in email_addresses
 def test_get_expired_licences_returns_empty_array_when_no_expired_licences(
         self, supplier, users):
     suppliers_with_expired_licences = suppliers.get_suppliers_with_expiring_labour_hire_licences(
         days=2)
     assert len(suppliers_with_expired_licences) == 0