Clearly a programming language -
Turing equivalence is sufficient to decide it's a programming language, whether well-defined (C, Python, Haskell, etc.) or ad-hoc (e.g., bash + Linux utilities, PowerShell + Windows utilities, etc.).
Annoying exceptions -
Until I read the Wikipedia article on Turing completeness, I'd never heard of useful Turing incomplete programming languages before. I, and I think most people reading PP&CG, would accept something like Charity as a programming language.
Clearly not a general purpose programming language -
No ability to construct a branch and/or a loop control structure. This definition is woefully incomplete, e.g. it doesn't rule out grep or anything using just regex'es, which I don't think of as complete programming languages.