| # Copyright 2011-2012 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from portage.tests import TestCase |
| from portage.update import parse_updates |
| from portage.dep import Atom |
| |
| class ParseUpdatesTestCase(TestCase): |
| |
| def testParseUpdates(self): |
| test_cases = ( |
| ( |
| """ |
| slotmove invalid_atom 0 3 |
| slotmove !=invalid/blocker-3* 0 3 |
| slotmove =valid/atom-3* 0 3 invalid_extra_token |
| slotmove =valid/atom-3* 0 3 |
| slotmove =valid/atom-3* 0 3/3.1 |
| slotmove =valid/atom-3* 0/0 3 |
| move valid/atom1 valid/atom2 invalid_extra_token |
| move valid/atom1 invalid_atom2 |
| move invalid_atom1 valid/atom2 |
| move !invalid/blocker1 valid/atom2 |
| move valid/atom1 !invalid/blocker2 |
| move =invalid/operator-1* valid/atom2 |
| move valid/atom1 =invalid/operator-2* |
| move valid/atom1 valid/atom2 |
| """, |
| [ |
| ['slotmove', Atom('=valid/atom-3*'), '0', '3'], |
| ['move', Atom('valid/atom1'), Atom('valid/atom2')], |
| ], |
| 12, |
| ), |
| |
| ) |
| |
| for input_content, expected_output, expected_error_count in test_cases: |
| output_data, errors = parse_updates(input_content) |
| self.assertEqual(output_data, expected_output) |
| self.assertEqual(len(errors), expected_error_count) |