Esempio n. 1
0
def generate_delivery_feedback_report(user, host_name, deliveries_feedback):
    csv_export_service = DeliveryFeedbackReportExporter(host_name)
    CSVExportService.generate(csv_export_service.assemble_csv_data(deliveries_feedback),
                              csv_export_service.export_category,
                              csv_export_service.get_export_csv_file_name())

    CSVExportService.notify(user, *csv_export_service.notification_details())
Esempio n. 2
0
def generate_delivery_feedback_report(user, host_name, deliveries_feedback):
    deliveries_feedback_with_contact = map(set_remote_contact_to_report_item, deliveries_feedback)
    csv_export_service = DeliveryFeedbackReportExporter(host_name)

    CSVExportService.generate(csv_export_service.assemble_csv_data(deliveries_feedback_with_contact),
                              csv_export_service.export_category,
                              csv_export_service.get_export_csv_file_name())

    CSVExportService.notify(user, *csv_export_service.notification_details())
Esempio n. 3
0
    def test_assemble_csv_data(self):
        delivery_received = 'Yes'
        shipment_date = '2015-11-20'
        order_number = 81020737
        satisfied_with_delivery = 'Yes'
        consignee = {'id': 1, 'name': 'WAKISO DHO'}
        additional_delivery_comments = 'good'
        is_delivery_in_good_order = 'Yes'
        contact_person_id = '5694bdd328c0edad08b0f020'
        value = 21990
        date_of_receipt = '2015-11-19T16:00:00.000Z'
        programme = {'id': 1, 'name': ''}
        first_name = 'Shenjian'
        last_name = 'Yuan'
        phone = '18192235667'
        contact_name = '%s %s' % (first_name, last_name)
        absolute_urls = ['http://testserver/media/photo/2016/01/27/major.jpg',
                         'http://testserver/media/photo/2016/01/27/cold.jpg']

        deliveries_feedback = [{'deliveryReceived': delivery_received,
                                'shipmentDate': shipment_date,
                                'orderNumber': order_number,
                                'satisfiedWithDelivery': satisfied_with_delivery,
                                'consignee': consignee,
                                'additionalDeliveryComments': additional_delivery_comments,
                                'isDeliveryInGoodOrder': is_delivery_in_good_order,
                                'value': value,
                                'dateOfReceipt': date_of_receipt,
                                'programme': programme,
                                'contactName': contact_name,
                                'contactPhone': phone,
                                'contactPersonId': contact_person_id,
                                'absoluteUrls': absolute_urls
                                }, ]

        row_value = [delivery_received,
                     shipment_date,
                     date_of_receipt,
                     order_number,
                     programme.get('name'),
                     consignee.get('name'),
                     contact_name,
                     phone,
                     value,
                     is_delivery_in_good_order,
                     satisfied_with_delivery,
                     additional_delivery_comments,
                     absolute_urls
                     ]

        csv_exporter = DeliveryFeedbackReportExporter(self.HOSTNAME)
        header = csv_exporter.config_headers()
        expect_data = [header, row_value]
        assembled_data = csv_exporter.assemble_csv_data(deliveries_feedback)

        self.assertEqual(expect_data, assembled_data)
        self.assertTrue(len(assembled_data) is 2)
Esempio n. 4
0
def generate_delivery_feedback_report(user, host_name, deliveries_feedback):
    deliveries_feedback_with_contact = map(set_remote_contact_to_report_item, deliveries_feedback)
    csv_export_service = DeliveryFeedbackReportExporter(host_name)

    CSVExportService.generate(csv_export_service.assemble_csv_data(deliveries_feedback_with_contact),
                              csv_export_service.export_category,
                              csv_export_service.get_export_csv_file_name())

    CSVExportService.notify(user, *csv_export_service.notification_details())
 def test_generate_delivery_feedback_report_should_return_correct_notification_details(self,
                                                                                       generate_exported_csv_file_name):
     file_name = 'deliveries_feedback_report_1448892495779.csv'
     generate_exported_csv_file_name.return_value = file_name
     delivery_feedback_reort_csv_export = DeliveryFeedbackReportExporter(self.HOSTNAME)
     category = 'report/feedback'
     details = ('Delivery Feedback Report Download',
                '%s some content Delivery Feedback Report other content http://ha.ha/static/exports/' + category +
                '/' + file_name)
     self.assertEqual(delivery_feedback_reort_csv_export.notification_details(), details)
Esempio n. 6
0
 def test_generate_delivery_feedback_report_should_return_correct_notification_details(self,
                                                                                       generate_exported_csv_file_name):
     file_name = 'deliveries_feedback_report_1448892495779.csv'
     generate_exported_csv_file_name.return_value = file_name
     delivery_feedback_report_csv_export = DeliveryFeedbackReportExporter(self.HOSTNAME)
     category = 'report/feedback'
     export_label = delivery_feedback_report_csv_export.export_label
     details = (EMAIL_COMMON_SUBJECT, EMAIL_NOTIFICATION_CONTENT.format(export_label,
                                                                        'http://ha.ha/static/exports/' + category +
                                                                        '/' + file_name, CSV_EXPIRED_HOURS))
     self.assertEqual(delivery_feedback_report_csv_export.notification_details(), details)
    def test_assemble_csv_data(self):
        delivery_received = 'Yes'
        shipment_date = '2015-11-20'
        order_number = 81020737
        satisfied_with_delivery = 'Yes'
        consignee = {'id': 1, 'name': 'WAKISO DHO'}
        additional_delivery_comments = 'good'
        is_delivery_in_good_order = 'Yes'
        value = 21990
        date_of_receipt = '2015-11-19T16:00:00.000Z'
        programme = {'id': 1, 'name': ''}
        deliveries_feedback = [{'deliveryReceived': delivery_received,
                                'shipmentDate': shipment_date,
                                'orderNumber': order_number,
                                'satisfiedWithDelivery': satisfied_with_delivery,
                                'consignee': consignee,
                                'additionalDeliveryComments': additional_delivery_comments,
                                'isDeliveryInGoodOrder': is_delivery_in_good_order,
                                'value': value,
                                'dateOfReceipt': date_of_receipt,
                                'programme': programme}, ]
        row_value = [delivery_received,
                     shipment_date,
                     date_of_receipt,
                     order_number,
                     programme.get('name'),
                     consignee.get('name'),
                     value,
                     is_delivery_in_good_order,
                     satisfied_with_delivery,
                     additional_delivery_comments
                     ]

        csv_exporter = DeliveryFeedbackReportExporter(self.HOSTNAME)
        header = csv_exporter.config_headers()
        expect_data = [header, row_value]
        assembled_data = csv_exporter.assemble_csv_data(deliveries_feedback)
        self.assertEqual(expect_data, assembled_data)

        self.assertTrue(len(assembled_data) is 2)
        assemble_row_value = assembled_data[1]
        self.assertTrue(len(assemble_row_value) is len(header))
        self.assertTrue(delivery_received in assemble_row_value)
        self.assertTrue(consignee.get('name') in assemble_row_value)
        self.assertTrue(shipment_date in assemble_row_value)
        self.assertTrue(is_delivery_in_good_order in assemble_row_value)
        self.assertTrue(order_number in assemble_row_value)
        self.assertTrue(additional_delivery_comments in assemble_row_value)
        self.assertTrue(programme.get('name') in assemble_row_value)
        self.assertTrue(satisfied_with_delivery in assemble_row_value)
        self.assertTrue(value in assemble_row_value)
        self.assertTrue(date_of_receipt in assemble_row_value)