Skip to content

Number of keys in ChoiceList positions dictionary #247

@aido

Description

@aido

Hi,

The ChoiceList.choose(index) method states:

Choice index must be in [1, 6]

class ChoiceList(Element):
def choose(self, index: int):
assert 1 <= index <= 6, "Choice index must be in [1, 6]"
self.client.finger_touch(*self.positions[index])

However, using an index of 6 i.e. ChoiceList.choose(6) gives the following error:

KeyError: 6

This error occurs because there are only 5 keys defined in the ChoiceList positions dictionary:

"ChoiceList": {
DeviceType.STAX: {
# Up to 5 choices in a list
1: Position(STAX_X_CENTER, 140),
2: Position(STAX_X_CENTER, 235),
3: Position(STAX_X_CENTER, 330),
4: Position(STAX_X_CENTER, 425),
5: Position(STAX_X_CENTER, 520),
},
DeviceType.FLEX: {
# Up to 5 choices in a list
1: Position(FLEX_X_CENTER, 150),
2: Position(FLEX_X_CENTER, 240),
3: Position(FLEX_X_CENTER, 330),
4: Position(FLEX_X_CENTER, 420),
5: Position(FLEX_X_CENTER, 510),
}
},

An extra key should probably be added to cater for choice buttons at the very bottom of a screen e.g.:

"ChoiceList": {
    DeviceType.STAX: {
        # Up to 5 choices in a list
        1: Position(STAX_X_CENTER, 140),
        2: Position(STAX_X_CENTER, 235),
        3: Position(STAX_X_CENTER, 330),
        4: Position(STAX_X_CENTER, 425),
        5: Position(STAX_X_CENTER, 520),
        6: Position(STAX_X_CENTER, 615),
    },
    DeviceType.FLEX: {
        # Up to 5 choices in a list
        1: Position(FLEX_X_CENTER, 150),
        2: Position(FLEX_X_CENTER, 240),
        3: Position(FLEX_X_CENTER, 330),
        4: Position(FLEX_X_CENTER, 420),
        5: Position(FLEX_X_CENTER, 510),
        6: Position(FLEX_X_CENTER, 600),
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions