Could any body tell me why the validation form methods don't be called automatically(don't work at all)?

This is what is being printed as slot_value.

And the reason is immediately clear.

This is your domain file.

Here, you didn’t use the correct order in the arguments. Look at the docs.

It should be

def validate_country(self, slot_value, dispatcher, tracker, domain):

With your code, dispatcher is actually slot_value, tracker is actually dispatcher, domain is actually tracker, and slot_value is actually domain.

Please use the arguments in the correct order. It’s the order that is important, not the name.