My apologies to those who closed this question for my unilaterally reopening it, but there is a nontrivial aspect to this question that I wish to address, and it would not nicely fit in comments.  (I am not making an exception for myself; when someone has such an answer he wishs to give to a closed question I nearly always reopen it for him to do so.)

----------

While I stated [before][1] that: "I can think of no way to do this with PatternTest" was not speaking rigorously and generally, but rather one-to-one substitution of methods.  One *can* apply `PatternTest` to a larger expression, e.g. the entire left-hand-side, as I did for [your prior question](http://mathematica.stackexchange.com/q/52057/121).  If handling the entire LHS one must exercise care to prevent infinite recursion.  Here is an example of how that may be done:

    SetAttributes[sumsTo7, HoldFirst]
    sumsTo7[_[s__]] := +s == 7
    
    f[x__]?sumsTo7 := {x}

Now:

    f[1, 2]
    f[3, 4]

>     f[1, 2]
>     
>     {3, 4}

It is possible to do this with an anonymous `Function` as well but it becomes rather baroque:

    g[x__]?(Function[Null, Plus @@ Unevaluated[#] == 7, HoldAll]) := {x}
    
    g[1, 2, 3]
    g[-3, 10]

>     g[1, 2, 3]
>     
>     {-3, 10}






  [1]: http://mathematica.stackexchange.com/a/1852/121