blob: eb54310593f647ae1c94d82cce0caa93aa9233f8 [file] [log] [blame]
# 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)