South Africa will also host a total of 13 ODIs and nine T20Is against Pakistan, Sri Lanka and Zimbabwe.
Pakistan, who will tour South Africa for the first time since 2013-14, will play the prime holiday season Tests in December and January, with Centurion awarded the Test starting on December 26 and Cape Town the traditional New Year Test starting on January 3.
The third Test will be in Johannesburg from January 11.
Pakistan will also play five ODIs and three T20Is.
Sri Lanka will play Tests in Durban and Port Elizabeth in February, to be followed by five ODIs and three T20Is.
Zimbabwe will play three ODIs and three T20Is at some of South Africa's smaller cricket venues.
Cricket South Africa acting chief executive Thabang Moroe said that the scheduled 13 ODIs during the season would enable the national team to fine tune their preparations for the 2019 Cricket World Cup in England.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ