コード例 #1
0
    def test_pedal_with_all_parts_in_stock_returns_empty_list(self):
        new_pedal = {
            'parts': [
                {
                    'category': 'capacitor',
                    'value': '10u',
                    'qty': 1
                },
                {
                    'category': 'resistor',
                    'value': '100k',
                    'qty': 2
                },
            ]
        }

        parts = [
            {
                'category': 'capacitor',
                'value': '10u',
                'qty': 1
            },
            {
                'category': 'resistor',
                'value': '100k',
                'qty': 2
            },
        ]

        result = pedaltools.list_missing_parts([new_pedal], parts)

        self.assertEqual([], result)
コード例 #2
0
    def test_pedal_with_missing_parts_lists_parts(self):
        new_pedal = {
            'parts': [
                {
                    'category': 'capacitor',
                    'value': '10u',
                    'qty': 1
                },
                {
                    'category': 'resistor',
                    'value': '100k',
                    'qty': 2
                },
            ]
        }

        parts = [
            {
                'category': 'capacitor',
                'value': '10u',
                'qty': 1
            },
        ]

        result = pedaltools.list_missing_parts([new_pedal], parts)

        expected = [
            {
                'category': 'resistor',
                'value': '100k',
                'qty': 2
            },
        ]

        self.assertEqual(expected, result)
コード例 #3
0
    def test_multiple_pedals_with_missing_qty_return_list(self):
        pedals = [
            {
                'parts': [
                    {
                        'category': 'capacitor',
                        'value': '10u',
                        'qty': 1
                    },
                    {
                        'category': 'resistor',
                        'value': '100k',
                        'qty': 2
                    },
                ]
            },
            {
                'parts': [
                    {
                        'category': 'capacitor',
                        'value': '120u',
                        'qty': 1
                    },
                    {
                        'category': 'resistor',
                        'value': '100k',
                        'qty': 1
                    },
                ]
            },
        ]

        parts = [
            {
                'category': 'capacitor',
                'value': '10u',
                'qty': 1
            },
            {
                'category': 'resistor',
                'value': '100k',
                'qty': 1
            },
            {
                'category': 'capacitor',
                'value': '120u',
                'qty': 1
            },
        ]

        result = pedaltools.list_missing_parts(pedals, parts)

        expected = [{'category': 'resistor', 'value': '100k', 'qty': 2}]

        self.assertEqual(expected, result)
コード例 #4
0
    def test_multiple_pedals_with_in_stock_parts_return_empty_list(self):
        pedals = [
            {
                'parts': [
                    {
                        'category': 'capacitor',
                        'value': '10u',
                        'qty': 1
                    },
                    {
                        'category': 'resistor',
                        'value': '100k',
                        'qty': 2
                    },
                ]
            },
            {
                'parts': [
                    {
                        'category': 'capacitor',
                        'value': '120u',
                        'qty': 1
                    },
                    {
                        'category': 'resistor',
                        'value': '100k',
                        'qty': 1
                    },
                ]
            },
        ]

        parts = [
            {
                'category': 'capacitor',
                'value': '10u',
                'qty': 1
            },
            {
                'category': 'resistor',
                'value': '100k',
                'qty': 3
            },
            {
                'category': 'capacitor',
                'value': '120u',
                'qty': 1
            },
        ]

        result = pedaltools.list_missing_parts(pedals, parts)

        self.assertEqual([], result)
コード例 #5
0
def list_missing_parts(pedal_names):
    parts = parttools.load_all()
    all_pedals = pedaltools.load_all()

    pedals = [pedal for pedal in all_pedals if pedal['name'] in pedal_names]

    missing = pedaltools.list_missing_parts(pedals, parts)

    missing = sorted(missing, key=itemgetter('category'))
    grouped = groupby(missing, key=itemgetter('category'))

    for group_name, items in grouped:
        print(group_name)

        sorted_items = sorted(items, key=itemgetter('value'))

        for item in sorted_items:
            output = f"{item['value'].ljust(15)}(qty: {item['qty']})"
            print(output)

        print('')
コード例 #6
0
    def test_lower_qty_than_required_is_returned(self):
        new_pedal = {
            'parts': [
                {
                    'category': 'capacitor',
                    'value': '10u',
                    'qty': 1
                },
                {
                    'category': 'resistor',
                    'value': '100k',
                    'qty': 2
                },
            ]
        }

        parts = [
            {
                'category': 'capacitor',
                'value': '10u',
                'qty': 1
            },
            {
                'category': 'resistor',
                'value': '100k',
                'qty': 1
            },
        ]

        result = pedaltools.list_missing_parts([new_pedal], parts)

        expected = [
            {
                'category': 'resistor',
                'value': '100k',
                'qty': 1
            },
        ]

        self.assertEqual(expected, result)